2011-11-16 85 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

相關問題