2011-05-26 86 views
1

我试图从XML提要中获取值,但我不确定如何获取它。 饲料:通过属性值查找XML文档中的节点

<name> 
    <namerecord nameID="0" platformID="1" platEncID="0" langID="0x0"> 
     Hello World 
    </namerecord> 
    <namerecord nameID="1" platformID="1" platEncID="0" langID="0x0"> 
     MyName 
    </namerecord> 
    <namerecord nameID="6" platformID="1" platEncID="0" langID="0x0"> 
     Another Record 
    </namerecord> 
    <namerecord nameID="12" platformID="1" platEncID="0" langID="0x0"> 
     Another Record Again 
    </namerecord> 

我想抓住从该项目,由目标是什么的填充NameID价值。如果我只是通过像namerecord [0]那样定位它,那么它在我需要的方式上就不正确。

我已经试过无数的东西:

$test = $xml->name->namerecord->attributes('nameId, '12'); 

有什么建议?

回答

1

这就是你现在如何处理XML:

$dom = new DOM(); 
$dom->load('your xml here'); 

$xp = new XPath($dom); 

$node = $xp->query('//namerecord[@nameID=12]')->item(0); 

$nameID = $node->getAttribute('nameID'); 
+0

不知道,DOM()类是什么,它不是在PHP5工作。我认为simpleXML是在PHP中使用XML的最佳方式? – Wayha 2011-05-27 07:45:24

+0

http://php.net/dom可能它没有在你的安装中启用,或捆绑为一个单独的软件包。 SimpleXML没问题,但将其视为“DOM-lite” – 2011-05-27 14:13:28