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

cha*_*tur 13 html iphone 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>
Run Code Online (Sandbox Code Playgroud)

我想将这个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
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将html字符串转换为纯文本.(html_response是服务器的响应,stringByConvertingHTMLToPlainText是自定义类文件中定义的方法)

testString = (NSString*) [html_response stringByConvertingHTMLToPlainText];
NSLog(@"%@",testString);
Run Code Online (Sandbox Code Playgroud)

但它转换整个字符串而不是分割它.控制台的输出是

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
Run Code Online (Sandbox Code Playgroud)

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

Gol*_*les 18

你可以使用一个非常好的NSString 类别,它是MWFeedParser项目的一部分.更具体地说,您查找文件NSString + HTML.

NSString + HTML类别将以下方法添加到NSString类,

- (NSString *)stringByStrippingTags;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
Run Code Online (Sandbox Code Playgroud)

然后你可以尝试这样的事情:

NSString *summary = [[[htmlString stringByStrippingTags] stringByRemovingNewLinesAndWhitespace] stringByDecodingHTMLEntities];
Run Code Online (Sandbox Code Playgroud)

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