【问题标题】:Convert formatted HTML text string to NSString parts将格式化的 HTML 文本字符串转换为 NSString 部分
【发布时间】:2011-12-30 04:51:32
【问题描述】:

我想解码 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 的数组中,其中包含以下 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

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

【问题讨论】:

    标签: iphone html decode


    【解决方案1】:

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

    NSString+HTML 类在 NSString 类中增加了以下方法,

    - (NSString *)stringByStrippingTags;
    - (NSString *)stringWithNewLinesAsBRs;
    - (NSString *)stringByRemovingNewLinesAndWhitespace;
    - (NSString *)stringByDecodingHTMLEntities;
    - (NSString *)stringByEncodingHTMLEntities;
    

    然后您可以尝试以下操作:

    NSString *summary = [[[htmlString stringByStrippingTags] stringByRemovingNewLinesAndWhitespace] stringByDecodingHTMLEntities];
    

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

    【讨论】:

    • 感谢您的回答。通过您建议的方法,我将 html 字符串转换为 nsstring,但我需要将其存储为包含 4 个不同 nsstring 的数组。你知道我该怎么做吗?我需要覆盖上述方法吗?
    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2020-09-09
    • 2019-01-08
    • 2022-07-20
    相关资源
    最近更新 更多