我想解码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>
我想将这个html字符串存储在4个不同NSStrings的Array中,并附带4个NSStrings(删除所有大小颜色的信息)
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);
但它会转换整个字符串而不是将其分成几部分。 控制台的输出是
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
所以我需要编写自定义方法来执行此操作吗?任何帮助将不胜感激。
答案 0 :(得分:18)
你可以使用一个非常好的NSString category,它是项目MWFeedParser的一部分。更具体地说,您要查找文件NSString+HTML。
NSString + HTML类别将以下方法添加到NSString类
- (NSString *)stringByStrippingTags;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
然后你可以尝试这样的事情:
NSString *summary = [[[htmlString stringByStrippingTags] stringByRemovingNewLinesAndWhitespace] stringByDecodingHTMLEntities];
希望它有所帮助!祝你好运:)