将格式化的HTML文本字符串转换为NSString部分

时间:2011-11-16 07:50:36

标签: iphone html decode

我想解码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&nbsp;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

所以我需要编写自定义方法来执行此操作吗?任何帮助将不胜感激。

1 个答案:

答案 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];

希望它有所帮助!祝你好运:)