将格式化的HTML文本字符串转换为NSString部分
问题描述:
我想解码HTML字符串并将其存储在NSString中。将格式化的HTML文本字符串转换为NSString部分
以下是来自google方向api的响应之一的html字符串。
teststring is Turn <b>right</b> onto <b>Kennington Park Rd/A3</b><div style="font-size:0.9em">Continue to follow A3</div><div style="font-size:0.9em">Entering toll zone in 1.7 km at Newington Causeway/A3</div><div style="font-size:0.9em">Go through 2 roundabouts</div>
我想在4个不同的NSString的阵列这个HTML字符串存储与以下4个NSString的(除去尺寸为颜色的所有信息)
Turn right onto Kennington Park Rd/A3
Continue to follow A3
Entering toll zone in 1.7 km at Newington Causeway/A3
Go through 2 roundabouts
我已经使用下面的方法来HTML字符串转换为纯文本。(html_response是从服务器的响应和stringByConvertingHTMLToPlainText是在自定义类文件中定义的方法)
testString = (NSString*) [html_response stringByConvertingHTMLToPlainText];
NSLog(@"%@",testString);
但其转换整个STRI而不是将其分解。在控制台 输出
Turn right onto Kennington Park Rd/A3Continue to follow A3 Entering toll zone in 1.7 km at Newington Causeway/A3 Go through 2 roundabouts
所以我需要编写自定义的方法来做到这一点?任何帮助将不胜感激。
答
有一个非常好的NSString category,你可以使用它,它是项目MWFeedParser的一部分。更具体地说,您查找文件NSString+HTML。
NSString的+ HTML类增加了以下方法来NSString类,
- (NSString *)stringByStrippingTags;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
那么你可以尝试这样的:
NSString *summary = [[[htmlString stringByStrippingTags] stringByRemovingNewLinesAndWhitespace] stringByDecodingHTMLEntities];
希望它可以帮助!祝你好运:)
感谢您的回答。通过你建议的方法,我已经将html字符串转换为nsstring,但我需要将它存储为包含4个不同nsstring的数组。你有什么想法我该怎么做?我需要重写上述方法吗? – chatur
每个div有一个字符串? – Goles