Php 在XML中搜索distName
在下面的示例中,是否有任何方法可以使用PHP获取distNamePhp 在XML中搜索distName,php,xml,Php,Xml,在下面的示例中,是否有任何方法可以使用PHP获取distName <managedObject class="class" version="version" distName="distName" id="id"> <defaults name="name"/> <p name="a">Some data</p> <p name="b">Some data</p> <p name="c">Som
<managedObject class="class" version="version" distName="distName" id="id">
<defaults name="name"/>
<p name="a">Some data</p>
<p name="b">Some data</p>
<p name="c">Some data</p>
<p name="d">Some data</p>
<p name="e">Some data</p>
但我只得到“managedObject”
非常感谢您的帮助。/*[contains(@name,'c')]”“
获取具有值为c
的属性name
的任何元素节点
$node->parentNode->nodeName
将获取节点父节点的节点名称。您问题中的节点名称是managedObject
。以下是获取父节点的属性distName
的两种可能解决方案
使用DomeElement::getAttribute():
或者修改Xpath表达式并获取distName
属性节点:
$nodes = $finder->evaluate("//*[contains(@name, 'c')]/parent::managedObject/@distName");
foreach ($nodes as $attribute) {
echo " {$attribute->value}\n";
}
你使用的是什么库?结构是动态的吗?
echo $node->parentNode->getAttribute('distName'), "\n";
$nodes = $finder->evaluate("//*[contains(@name, 'c')]/parent::managedObject/@distName");
foreach ($nodes as $attribute) {
echo " {$attribute->value}\n";
}