2013-02-13 2 views
1

XML 파일이 있습니다 특정 요소 만 추출해야합니다. 그리고 XML 파일을 업데이트하여 요소가 나타나는 순서를 완전히 바꿀 수는 있지만 요소에는 이름 = 설정이 포함될 수 있습니다.PHP XML name = = 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

+1

'$ value = current ($ myXml-> xpath ("/ sub [@ name = this1]");'질의가 하나의 요소 만 반환하면 잘 동작합니다. 나머지는 사라질 것입니다. –

+0

완벽합니다. 감사합니다. – Rik

관련 문제