gpt4 book ai didi

php - 通过 php domdocument 解析器获取文档元素的子元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:48:10 24 4
gpt4 key购买 nike

好吧,这是一个非常常见的 xml 解析方法,获取子节点,但它对我来说不起作用......

无法从我的根元素中获取子节点数组,但当它们有子节点时我可以从任何其他节点获取它,这不是问题。每当我从这个文档元素中获取子节点时,我似乎只能获取第一个子节点。

我需要从文档元素中获取所有第一级节点..

$xdoc=createDOMDocument($file);
$all_children= $xdoc->documentElement->childNodes;
echo count($all_children);

function createDOMDocument($file){
$xdoc = new DOMDocument();
$xdoc->formatOutput = true;
$xdoc->preserveWhiteSpace = false;
$xdoc->load($file);
return $xdoc;
}

但这只会输出“1”,它不会找到所有节点,当我尝试输出它时,它总是停在第一个节点。这对我来说毫无意义。

它在下面找到的唯一节点是:

<title>some title</title>

如果我删除该节点,它会找到 topicmeta 等,但不会将每个节点都放入我需要的数组中。

这是 XML:

<?xml version="1.0" encoding="UTF-8"?>
<map title="mytitle" xml:lang="en-us">
<title>some title</title>
<topicmeta>
<prodinfo>
<prodname>a product</prodname>
<vrmlist>
<vrm version="8.5"/>
</vrmlist>
<platform/>
</prodinfo>
</topicmeta>
<topichead navtitle="cat1" id="topichead4f53aeb751c875.38130575">
<topichead navtitle="another topic"/>
</topichead>
<topichead navtitle="cat2" id="topichead4f53aeb3596990.18552413"/>
<topichead navtitle="cat3" id="topichead4f52fd157487f9.21599660"/>
</map>

最佳答案

这对我有用......

$xml = new DOMDocument();
$xml->load('read.xml');

$root = $xml->documentElement;
foreach($root->childNodes as $node){
print $node->nodeName.' - '.$node->nodeValue;
}

我确实必须更改 <topichead navtitle="cat3" id="topichead4f52fd157487f9.21599660"><topichead navtitle="cat3" id="topichead4f52fd157487f9.21599660" />

关于php - 通过 php domdocument 解析器获取文档元素的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com