2016-09-02 4 views
2

나는 이와 같은 XML 파일을 사용하고 있습니다.PHP XML 형제 태그의 속성에 액세스하기

<m> 
    <n> 
    <name id="1">test</name> 
    <id>10</id> 
    </n> 
    <n> 
    ...... 
    </n> 
</m> 

10 다음에 형제 태그 "name"의 id 값을 가져옵니다.

나는 형제 태그에 "이름"의 id 속성 값을 가져 오는 방법을 알지 못합니다. 형제 속성에 액세스하기위한 방법이 있습니까?

$test=$xml->xpath("//n['10']/::*"); 

이 ID ("<name id="1">test</name>") 값에는 어떻게 액세스합니까?

감사

답변

2
당신은 다음과 id 요소에서 name 요소를 형제 앞 찾을 수 있습니다

: 또는

//id[.='10']/preceding-sibling::name 

, 당신은 아이가 id이 기준과 일치 n 요소를 찾을 수 있습니다, 다음과 같은에서 name 요소를 반환 n :

*) 전체 name 요소 대신 id 특성을 반환하려는 경우 위의 XPath 끝 부분에 /@id을 추가하십시오.

+0

'/ @ id '를 추가하는 경우 SimpleXML의'xpath()'메서드는 항상 * 문자열 *이 아닌 객체의 배열을 반환한다는 것을 기억하십시오. 따라서 속성의 실제 값은'(string) $ test [0]'으로 액세스됩니다. – IMSoP

관련 문제