我有一个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