2014-06-24 4 views
-2

나는 간단한 XML 등에 관한 모든 게시물을 살펴 보는 데 몇 시간을 보냈습니다.PHP 간단한 구문 분석 SOAP 응답

원하는 모든 값을 추출/설정하는 간단한 방법입니다.

예 : 나는 다음과 SOAP 응답의 섹션 "데이터"의 "주소"의 값을 추출하려면 어떻게 : (참고 : 나는 꺾쇠 괄호를 위해 [] 대체 한)

[?xml version="1.0" encoding="utf-8"?] 
    [soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"] 
    [soap:Body] 
    [FetchResponse xmlns="http://xxxxxx.com/WS/xxxx"] 
    [WSResponse Code="1"] 
    [Message]Fetched empty Email[/Message] 
    [Data][?xml version="1.0" encoding="utf-16"?][Email xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Editor="0" Updated="1800-01-01T00:00:00" ID="0" ParentID="0" Address="" EmailType="Unknown" /] 
    [/Data] 
    [/WSResponse] 
    [/FetchResponse] 
    [/soap:Body] 
    [/soap:Envelope] 

RGDS Petras

답변

1

모든 코드를 게시하십시오.

시도해보십시오.

.. 
// Call wsdl function 
    $result = $client->__soapCall("YOURCALL", array()), NULL, $header); 

    print_r($result->Email['Address']) 
    //Or 
    print_r($result->Data->Email['Address']) 
0

답장을 보내 주셔서 감사합니다. 그러나 ...

는 사용 :

// Call WSDL function 
$result = $APIClient->__soapCall("Fetch", array( 
    "Fetch" => array( 
     "id"  => $PersonID, 
     "entity" => "Email", 
     "Alias"  => "" 
    ) 
), NULL, $Header); 

제 1 회 제안을 제공합니다

Notice: Undefined property: stdClass::$Email 

2 차 제안을 제공합니다

Notice: Undefined property: stdClass::$Data 

$ 결과에 인 print_r을 제공합니다

stdClass Object ([WSResponse] => stdClass Object ([Message] => Email record successfully located for ID: 11450. [Data] => [Code] => 1)) 

Rgds Petras