Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用简单的HTML DOM访问CDATA中的节点?_Php_Xml_Cdata - Fatal编程技术网

Php 如何使用简单的HTML DOM访问CDATA中的节点?

Php 如何使用简单的HTML DOM访问CDATA中的节点?,php,xml,cdata,Php,Xml,Cdata,给定一个xml <xml> <![CDATA[<myNode>aaa</myNode><anotherNode>bbb</anotherNode>]]> </xml> aaabb]]> 如何使用简单的HTMLDOM访问myNode中的节点(它位于CDATA中) 是否可能,或者我应该换成另一个库?任何解析器都会忽略CDATA块,因此,除非您也解析CDATA文本,否则CDATA块中的任何xml节点都不可查询。换

给定一个xml

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

aaabb]]>
如何使用简单的HTMLDOM访问myNode中的节点(它位于CDATA中)


是否可能,或者我应该换成另一个库?

任何解析器都会忽略CDATA块,因此,除非您也解析CDATA文本,否则CDATA块中的任何xml节点都不可查询。换言之:

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

  • 说到这里,为什么在CDATA块中有完整的xml文本?对我来说,这听起来非常懒。

    嗯,XML不是我的。我在和一个废品商一起工作,我不能修改XML。明白了。难道你不讨厌必须破解你的代码来解决别人的问题吗?嗯,我更喜欢把它看作一种挑战:P