1

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

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

4

1 回答 1

1

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

于 2013-02-13T20:57:47.150 回答