2013-02-13 90 views
1

我有一個XML文件,我需要從中只提取某些元素。在某些時候,XML文件可以被更新並且完全改變元素出現的順序 - 但元素包含一個名稱=設置。PHP XML如何提取名稱=使用simpleXML的元素

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

所以子[2]將隨後成爲this1代替this2。

回答

1

您想要的是XPath查詢,例如, $myXml->xpath("/sub[@name=this1]")。在這裏瞭解更多關於Xpath的信息http://php.net/manual/de/simplexmlelement.xpath.php

+0

這就是我所需要的。但是我需要提取元素本身中包含的值。所以'this2'應該是'value' – Rik 2013-02-13 21:19:57

+1

'$ value = current($ myXml-> xpath(「/ sub [@ name = this1]」);'只有當查詢只返回單個元素時,休息會丟失。 – 2013-02-13 21:21:51

+0

完美,謝謝 – Rik 2013-02-13 22:32:28

相關問題