2012-07-02 3 views
1

ID 배열을 반환하는 SOAP 요청이 있습니다. 어떤 이유로 SimpleXML 요소 내에서 배열에 액세스하는 데 문제가 있습니다.simpleXML 내의 PHP 액세스 배열

die(var_dump($POList)); 
object(SimpleXMLElement)#7 (1) { ["int"]=> array(10) { [0]=> string(5) "20622" [1]=> string(5) "20868" [2]=> string(5) "20880" [3]=> string(5) "20883" [4]=> string(5) "21034" [5]=> string(5) "21065" [6]=> string(5) "21136" [7]=> string(5) "21160" [8]=> string(5) "21202" [9]=> string(5) "21247" } } 

그리고 내가 비록 배열 일 것입니다 무슨의 VAR 덤프 :

die(var_dump($POList->int)); 
object(SimpleXMLElement)#8 (1) { [0]=> string(5) "20622" } 

가 어떻게이 배열에 액세스 할

은 내가 SimpleXML을 객체의 vardump을 했습니까?

+0

사용하지 왜 당신이 비누 요청을하는 경우 내장 된 SOAP 클라이언트? SOAP 클라이언트가이 .net webservice를 좋아하지 않으므로 @Cfreak를 사용하여 클래스를 생성하는 스크립트가 있습니다. – Cfreak

+0

나는 soapclient에서 요청을 처리 할 수 ​​있었지만, 응답을 구문 분석 할 수있는 유일한 방법은 XML을 가져 와서 SimpleXML을 통해 넣는 것입니다. – MrGlass

답변

2

SimpleXMLElementTraversable 구현, 그래서 당신은 할 수 있어야한다 :

foreach($POList->int as $el) 
    echo $el; 

또는 가능성의 XPath에서 배열을 조회 :

$array = $POList->xpath('/int')[0]; 
foreach($array as $el) 
    echo $el; 
+0

두 번째 예제는 작동하지 않지만 첫 번째 방법은 나를 반복 할 수있었습니다. 항목을 만들고 배열을 다시 작성하십시오. – MrGlass

+0

두 번째 예제의 구문은 PHP 5.4 이상에서만 작동합니다. 이전 버전에서는'foo() [0]'형식의 함수 및 배열 구문 조합을 거부하기 때문입니다. – IMSoP