有几种不同的方法可以从 Cocoa
中的 NSString
中去除 HTML tags
。
一种方法 是将字符串呈现为 NSAttributedString
,然后获取呈现的文本。
另一种方法 是使用 NSXMLDocument's
-objectByApplyingXSLTString
方法应用一个 XSLT
转换来完成它。
不幸的是,iPhone 不支持 NSAttributedString
或 NSXMLDocument
。有太多的边缘情况和畸形的 HTML
文档,我觉得舒适使用正则表达式或 NSScanner
。有人能解决这个问题吗?
一个建议是简单地查找开始和结束标记字符,这种方法除了非常普通的情况外不会起作用。
例如,这些案例(来自 Perl Cookbook 关于同一主题的章节)将打破这种方法:
<IMG SRC = "foo.gif" ALT = "A > B">
<!-- <A comment> -->
<script>if (a<b && a>c)</script>
<![INCLUDE CDATA [ >>>>>>>>>>>> ]]>