2012-05-31 39 views
0
带HTML标签

可能重复:
Remove HTML Tags from an NSString on the iPhone
Strip out HTML Tags etc from NSString的Objective-C:从字符串

我得到的JSON字典返回一些字符串看起来像这样:

"<p>There are <span class=\"top-color-red\">7</span> magical worlds ahead!</p>" 

In O bjective-C和Foundation框架,有没有一种方法可以去掉所有的标签和HTML cruft来显示字符串,因为它会被渲染?

There are 7 magical worlds ahead! 

如果这需要使用外部库,您可以用我的字符串作为示例发布代码段吗?

谢谢!

+0

闭幕问题,谢谢。有趣的是,当我输入问题标题时,这些答案没有出现在“类似问题”的结果中。当我发布问题时,侧栏中的相关链接有重复链接。排序什么是这个时刻 – Justin

+0

这是尝试/想要/考虑用正则表达式解析HTML的必备链接:[RegEx匹配除XHTML独立标签之外的开放标签](http://stackoverflow.com/questions/1732348 /正则表达式匹配开放标签,除了-XHTML-自足标签)。并且mergesort,很好地添加一个链接到一个相关的问题,这个问题也被作为一个副本关闭。 – Joe

回答

3

如果字符串可以被信任为格式良好,最简单的选项可能是使用NSXMLParser;实现代理方法-parser:foundCharacters:,使用累加器来收集文档片段的文本内容。

如果你不能相信他们是格式良好的XML,但可以相信他们是有效的HTML;您可以使用NSAttributedString及其-initWithHTML:documentAttributes:方法,并在创建后从字符串中提取文本。

如果你不能相信它是有效的HTML;逃跑。

非常非常快。

+0

但是,如果不是,你会怎么做? – evanmcdonnal

+0

@evanmcdonnal:然后你修正发布HTML的任何内容,以便你可以相信它是格式良好的XML。 –

+1

如果它是别人的网站,你的解析?顺便说一句,只是扮演魔鬼的主张。我试着用NSXMLParser在不久前解析别人的HTML,并且无法使其工作。我最终编写了自己的特殊情况解析器。 – evanmcdonnal