【问题标题】:How to access a node inside CDATA with Simple HTML DOM?如何使用简单的 HTML DOM 访问 CDATA 中的节点?
【发布时间】:2012-11-30 15:05:05
【问题描述】:

给定一个xml

<xml>
<![CDATA[<myNode>aaa</myNode><anotherNode>bbb</anotherNode>]]>
</xml>

如何使用简单的 HTML DOM 访问 myNode 内的节点(它位于 CDATA 内)?

有没有可能,或者我应该换一个库?

【问题讨论】:

    标签: php xml cdata


    【解决方案1】:

    CDATA 块将被任何解析器忽略,因此您在 CDATA 块中拥有的任何 xml 节点都将不可查询,除非您也解析 CDATA 文本。换句话说:

    1. 解析您的原始文档
    2. 查询您的 CDATA 文本块。您将获得一个新的 xml 字符串。
    3. 解析您的新(内部)xml 字符串,并从中查询您需要的任何数据。

    说了这么多,为什么在 CDATA 块中还有完整的 xml 文本?听起来对我来说非常懒惰。

    【讨论】:

    • 好吧,XML 不是我的。我正在使用抓取工具,但无法修改 XML。
    • 知道了。你不讨厌不得不破解你的代码来解决其他人的问题吗?
    • 好吧,我更喜欢将其视为挑战:P
    • 不准确,V 1.11 (2008-12-14) 中添加的$e-&gt;xmltext 将 CDATA 作为文本返回
    猜你喜欢
    • 2011-08-24
    • 2012-08-22
    • 2014-05-28
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    相关资源
    最近更新 更多