PHP XML如何使用simpleXML提取name = name的元素

时间:2013-02-13 20:53:57

标签: php xml parsing simplexml

我有一个XML文件,我需要从中提取某些元素。在某些时候,XML文件可以更新并完全改变元素出现的顺序 - 但元素包含name = setting。

<element>
 <sub name='this1'>value</sub>
 <sub name='this2'>value</sub>
 <sub name='this3'>value</sub>
 <sub name='this4'>value</sub>     
</element>

我需要为this2和this4提取值。

但在某个阶段,可能会添加新的子元素,从而改变顺序。所以我不能用:

$xml->element->sub[2]

以下示例:

<element>
 <sub name='this0'>value</sub>
 <sub name='this1'>value</sub>
 <sub name='this2'>value</sub>
 <sub name='this3'>value</sub>     
 <sub name='this4'>value</sub>    
</element>

因此sub [2]将成为this1而不是this2。

1 个答案:

答案 0 :(得分:1)

你想要的是一个XPath查询,例如$myXml->xpath("/sub[@name=this1]")。在此处阅读有关Xpath的更多信息http://php.net/manual/de/simplexmlelement.xpath.php