我有一个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。
答案 0 :(得分:1)
你想要的是一个XPath查询,例如$myXml->xpath("/sub[@name=this1]")
。在此处阅读有关Xpath的更多信息http://php.net/manual/de/simplexmlelement.xpath.php