Php 如何使用DOM在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=

假设我有一个这样的XML文档

<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');