2011-11-16 20 views
13

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

所以我需要编写自定义的方法来做到这一点?任何帮助将不胜感激。

回答

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

希望它可以帮助!祝你好运:)

+0

感谢您的回答。通过你建议的方法,我已经将html字符串转换为nsstring,但我需要将它存储为包含4个不同nsstring的数组。你有什么想法我该怎么做?我需要重写上述方法吗? – chatur

+0

每个div有一个字符串? – Goles

相关问题