问题描述
- 显示含有HTML标签的字符串
-
用谷歌API显示地图,然后有一些HTML方向字符串,包含了HTML标签。现在我想在普通文本中显示这些字符,不知道应该怎么实现?字符串如下:
Head <b>southwest</b> toward <b>GH Rd</b> Exit the roundabout onto <b>GH Rd</b><div style="font-size:0.9em">Go through 1 roundabout</div> At the roundabout, take the <b>1st</b> exit onto <b>Road Number 2</b><div style="font-size:0.9em">Pass by myonlinesearch.blogspot.com (on the left in 600 m)</div> At the roundabout, take the <b>3rd</b> exit onto <b>CH Rd</b> At <b>Indroda Cir</b>, take the <b>2nd</b> exit onto <b>Gandhinagar Ahmedabad Rd/SH 71</b><div style="font-size:0.9em">Continue to follow Gandhinagar Ahmedabad Rd</div><div style="font-size:0.9em">Go through 1 roundabout</div> At the roundabout, take the <b>1st</b> exit onto <b>Sardar Patel Ring Rd</b> At <b>Ranasan Cir</b>, take the <b>3rd</b> exit onto <b>NH 8</b><div style="font-size:0.9em">Pass by Galaxy Restaurant (on the left in 4.3 km)</div> Turn <b>left</b> onto <b>Galaxy Rd</b><div style="font-size:0.9em">Pass by Shiv Shakti Food Fort (on the left)</div> Turn <b>left</b> onto <b>NH 59</b> Turn <b>right</b><div style="font-size:0.9em">Go through 1 roundabout</div> Turn <b>right</b> Turn <b>left</b><div style="font-size:0.9em">Destination will be on the right</div>
解决方案
可以用RegularExpression/Predicates
移除< & >内所有的内容
不过如果文本也包含 <> 也会被移除
NSRange range;
NSString *string;
while ((range = [string rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound){
string=[string stringByReplacingCharactersInRange:range withString:@""];
}
NSLog(@"Un block string : %@",string);
解决方案二:
如果你只是直接显示的话,直接用UIWebView就可以了 。
[self.webView loadHTMLString:htmlString baseURL:nil];
你可以参考官方例子TransWeb。将含有标签的xml文件显示出来。
解决方案三:
你需要转义<
、>
、 "
和'
。用正则替换就行了。
时间: 2024-11-03 20:58:07