SoapClient解析响应

时间:2012-08-04 08:39:31

标签: php xml soap response

我需要解析来自:

的响应
$client->__getLastResponse();

uuid:9e0096e0-de0f-11e1-8035-e656d1754971

http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous 0 ContentType text/xml 1 
Result 200 2 XMLDocumentOut <?xml version="1.0" encoding="utf-8" ?> 
<DtsAgencyLoginResponse xmlns="DTS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="DTS file:///R:/xsd/DtsAgencyLoginMessage_01.xsd">
<SessionInfo><SessionID>178827</SessionID><Profile>A</Profile><Language>ENG</Language>
<Version>1</Version>
</SessionInfo><AdvisoryInfo/></DtsAgencyLoginResponse>

我如何解析它以获取SessionID?谢谢!

编辑:

方法$client->method($parameter)的结果是:

stdClass Object ( [result] => [ttOut] => stdClass Object ( [ttOutRow] => Array ( [0] => stdClass Object ( [ParPos] => 0 [ParNam] => ContentType [ParVal] => text/xml ) [1] => stdClass Object ( [ParPos] => 1 [ParNam] => Result [ParVal] => 200 ) [2] => stdClass Object ( [ParPos] => 2 [ParNam] => XMLDocumentOut [ParVal] => 178880AENG1 ) ) ) [opcErrorMessage] => )

1 个答案:

答案 0 :(得分:2)

当通过PHP5 SOAPClient调用SOAP方法时,您总是会得到响应。也就是说,可能没有必要调用__getLastResponse()来检索SessionID值。看看以下内容:

$response = $client->myMethod();
$sessionID = $response->SessionInfo->SessionID;

另外http://www.php.net/manual/en/soapclient.soapcall.php