Php 如何使用DOM在XML中获取此属性值
假设我有一个这样的XML文档Php 如何使用DOM在XML中获取此属性值,php,xml,Php,Xml,假设我有一个这样的XML文档 <node id="234" label="somewhere" > <attvalues> <attvalue for="ware" value="ews"/> <attvalue for="soft" value="sed"/> <attvalue for="time" value="121"/> <attvalue for=
<node id="234" label="somewhere" >
<attvalues>
<attvalue for="ware" value="ews"/>
<attvalue for="soft" value="sed"/>
<attvalue for="time" value="121"/>
<attvalue for="life" value="mone"/>
</attvalues>
</node>
但如果我只想要时间属性值呢?因为上面的代码给出了所有属性及其值。我不知道如何更具体
我试过类似的东西
$evA[] = $value->getAttribute('time');
但是不起作用
foreach ($node->getElementsByTagName('attvalue') as $value) {
if ($value->getAttribute('for') != 'time') {
continue;
}
$timeValue = $value->getAttribute('value');
break;
}
如果XML可能有多个时间值,请将$timeValue
定义为一个数组,然后使用$timeValue[]
或array\u push()
函数添加值,如下所示:
$timeValue[] = $value->getAttribute('value');
// break; also do not forget to remove the break operator.
您还可以直接使用XPath查询该值:
$xp = new DOMXPath($domDocument);
$value = $xp->evaluate('/node/attvalues/attvalue[@for="time"]/@value');
$xp = new DOMXPath($domDocument);
$value = $xp->evaluate('/node/attvalues/attvalue[@for="time"]/@value');