Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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 在XML中搜索distName_Php_Xml - Fatal编程技术网

Php 在XML中搜索distName

Php 在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

在下面的示例中,是否有任何方法可以使用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">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";
}