2012-05-22 2 views
2

저는 wsdl 파일로 작업 중이며 전체 프로세스에서 많은 것을 배우고 있습니다. 다음은 PHP 구문 분석 객체 (stdClass) 응답

$webservice = new SoapClient("mainwsdl.wsdl"); 
var_dump($webservice->AccountsGetXML()); 

응답, 그리고 난 아직 분석 데이터와 약간의 새로운 해요 :

은 내가 SoapClient를 인스턴스화하고 있습니다.

object(stdClass)#2 (3) { 
    ["AccountsGetXMLResult"]=> 
    object(stdClass)#3 (1) { 
    ["any"]=> 
    string(391) "<AccountsWSDS xmlns=""><ERRORS><ERROR_ID>1</ERROR_ID><TABLE_NAME>Accounts</TABLE_NAME><TABLE_ID>NoID</TABLE_ID><ROW_ID>-1</ROW_ID><COLUMN_ID>EXCEPTION</COLUMN_ID><ERROR_TYPE>E</ERROR_TYPE><ERROR_CODE>0</ERROR_CODE><ERROR_TEXT>Error connecting to database - please contact ABC Customer Services. Msg: Object reference not set to an instance of an object.</ERROR_TEXT></ERRORS></AccountsWSDS>" 
    } 
    ["rowCount"]=> 
    NULL 
    ["pageCount"]=> 
    NULL 
} 

이전에 객체 (stdClass) 응답을 사용하지 않았습니다. 아니면 내가 그 사실을 몰랐다.

특정 정보를 [ "AccountsGetXMLResult"]뿐만 아니라 [ "rowCount"] 및 [ "pageCount"]를 구문 분석해야합니다.

# 2 (3)이 무엇인지 혼란스러워합니다.

어쨌든 여기에 데이터를 구문 분석하려는 시도가 있습니다. AccountsGetXMLResult로 시작했습니다.

echo $webservice->AccountsGetXMLResult; 

다음은 내가 원래 가지고있는 것입니다.
PHP 공지 : 정의되지 않은 속성 :

라인 (23)에 /apache/test.php에서 SoapClient :: $ AccountsGetXMLResult 그래서 분명 나는 응답을 해부에 대한 도움이 필요 해요.

+1

은'# 2 (3)'은 해당 프로세스에 대한 stdClass의 두 번째 인스턴스이고 객체의 세 가지 속성이 있음을 의미합니다. – jnrbsn

답변

1

$webservice->AccountsGetXML()stdClass의 개체는 var 덤프에 표시되는 속성을 반환합니다. stdClass은 미리 정의 된 속성이나 자체 메서드가없는 "빈 자리 표시 자 클래스"입니다. 당신이 볼 수있는 속성에 액세스하려면 반환 값 $webservice->AccountsGetXML()에 작업 :이 또한 다음과 같이 작동

$obj = $webservice->AccountsGetXML(); 
var_dump($obj->AccountsGetXMLResult); 
var_dump($obj->AccountsGetXMLResult->any); 

:

echo $webservice->AccountsGetXML()->AccountsGetXMLResult->any; 
+0

+1 철저하고 신속한 답변입니다. –

0

이 시도 :

$result = json_decode(json_encode(simplexml_load_string($webservice->AccountsGetXML()->AccountsGetXMLResult->any)),TRUE); 

print_r($result); 
+0

그는 JSOn을 사용하지 않습니다 –

+0

JSOn을 사용하고 있지 않다는 것을 알고 있습니다. JSOn에 대한 응답을 변환 한 다음 즉시 PHP 배열로 변환하여 PHP 배열로 액세스 할 수있게합니다. 그것은 작동합니다. –

+0

@ClintDecker 안녕하세요,이 사람은 저에게 큰 도움이되었습니다. 다른 것은 작동하지 않는 것 같습니다. SOAP XML을 PHP 배열로 완벽하게 변환하므로 감사합니다! – StuyvesantBlue