Ann*_*nna 7 php xml dom simplexml
我正在使用 SimpleXML 来解析我的 xml 文件。我正在循环遍历它,在每个节点中我需要获取一个特定标签的值。这是一个例子
<node>
<child1></child1>
<findme></findme>
<child2></child2>
</node>
<node>
<child1>
<findme></findme>
</child1>
<child2></child2>
</node>
<node>
<child1></child1>
<child2>
<another>
<findme></findme>
</another>
</child2>
</node>
Run Code Online (Sandbox Code Playgroud)
在每个节点中我需要获取findme标签。但我不知道它能达到哪个级别,我只知道一个标记名
我想到的唯一决定是使用这个递归函数
foreach($xml as $prod){
...
$findme = getNode($prod, 'fabric');
...
}
function getNode($obj, $node) {
if($obj->getName() == $node) {
return $obj;
}
foreach ($obj->children() as $child) {
$findme = getNode($child, $node);
if($findme) return $findme;
}
}
Run Code Online (Sandbox Code Playgroud)
更新
另外,正如评论中所建议的,我们可以使用 DOMDocument 类,如下所示:
$dom = new DOMDocument();
$dom->LoadXML($xmlStr);
$nodes = $dom->getElementsByTagName('node');
foreach($nodes as $node)
{
$findme = $node->getElementsByTagName("findme")->item(0);
echo $findme->textContent."\r";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |