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


PHP XML How to extract the element where name= using simpleXML

我有一个XML文件,只需要从中提取某些元素。在某个时刻,XML文件可能会被更新,并完全改变元素的显示顺序,但元素包含名称=设置。

<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。

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