2012-08-15 2 views
3

다음 XML 파일을 PHP simplexml에로드했습니다.동일한 태그를 사용하여 여러 항목을 반환하는 simplexml

$customers = new SimpleXMLElement($xmlstring); 

이가 "밥"을 반환하지만 어떻게 내가 마지막으로 이름을 반환 할 사용

<adf> 
<prospect> 
<customer> 
<name part="first">Bob</name> 
<name part="last">Smith</name> 
</customer> 
</prospect> 
</adf> 

?

echo $customers->prospect[0]->customer->contact->name; 

답변

12

당신은 배열 스타일의 구문을 사용하여 번호로 다른 <name> 요소에 액세스 할 수 있습니다.

$names = $customers->prospect[0]->customer->name; 

echo $names[0]; // Bob 
echo $names[1]; // Smith 

사실, 당신은 이미있는 <prospect> 요소에 대해 그 일을!

설명서의 Basic SimpleXML Usage도 참조하십시오.


일부 기준에 따라 요소를 선택하려면 XPath을 사용하는 것이 좋습니다.

$customer = $customers->prospect[0]->customer; 
$last_names = $customer->xpath('name[@part="last"]'); // always returns an array 
echo $last_names[0]; // Smith 
+0

+1 멋진 수동 링크입니다. – hakre

+0

고마워, 정확히 내가 무엇을 찾고 있었는지! – bmanhard

관련 문제