1

我是 iphone 开发的新手。我想在解析时忽略 CDATA 标记,因为它将其后面的 HTML 标记视为文本。因为我想单独显示内容,我希望我的解析器忽略 CDATA 标记。我的源代码是

[CDATA[<br /><p class="author"><span class="by">By: </span>By Sydney Ember</p><br><p>In the week since an </p>]].

有什么方法可以忽略 CDATA 标签吗?有什么方法可以两次解析我的源代码,使其只显示内容?

请给我一些示例代码。请帮助我。谢谢。

4

2 回答 2

4

如果您将 CDATA 内容视为 XML 而不是 CDATA,那么您的解析器将抛出错误(因为您的 HTML 是 XHTML 和 HTML 的奇怪混合,并且格式不正确)。

如果要获取 HTML,则解析 XML,提取节点的文本内容,然后将该文本解析为 HTML。

于 2010-01-25T13:38:41.557 回答
1

没有办法忽略 CDATA 标记 - 它是 xml 规范的一部分,解析器应该尊重它。

如果您不喜欢对先前问题的这个答案的想法,您可以获取 CDATA 部分的内容并将其再次解析为 XML。但是,强烈不建议这样做!您不知道 CDATA 的内容将是有效的 xml(它们可能不是)。

如果您可以 100% 保证 CDATA 部分包含您上面的表格,您可能会使用一些字符串操作来获取数据(即string replace '<span class="by">By: </span>' with ''),但同样,如果 CDATA 内容更改,这几乎肯定会中断。

xml来自哪里?与服务所有者交谈并让他们发送给您而不是描述类似的东西是一个更好的主意

<description>
  <author>By Sydney Ember</autho>
  <text>In the week since an </text>
</description>

小号

于 2010-01-25T13:45:39.800 回答