3
如果我犯了錯誤的標題,我很抱歉,我不熟悉SOAP響應和它的類型。但我想這是一個WSDL反應,至少我是從WSDL鏈接...使用PHP解析來自WSDL的響應
我有以下網址 http://somedomain.com/j.svc?wsdl
後,我用curl_multi提出的要求,我得到了以下回應。響應縮短到兩個結果,因此會更容易閱讀
的響應是如下:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetJourneyListResponse xmlns="http://tempuri.org/">
<GetJourneyListResult xmlns:a="http://schemas.datacontract.org/2004/07/DreamFlightWCF" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Journey>
<a:FromAirport>LHR</a:FromAirport>
<a:TotalPrice>146</a:TotalPrice>
</a:Journey>
<a:Journey>
<a:FromAirport>LHR</a:FromAirport>
<a:TotalPrice>155</a:TotalPrice>
</a:Journey>
</GetJourneyListResult>
</GetJourneyListResponse>
</s:Body>
</s:Envelope>
是否有機會使用PHP解析結果呢?我做了很多搜索,包括StackOverflow,這裏是我設法找到的。
爲了解析上述響應我可以使用以下代碼:
$xml = simplexml_load_string($result);
$xml->registerXPathNamespace('flight','http://schemas.datacontract.org/2004/07/DreamFlightWCF');
foreach ($xml->xpath('//flight:Journey') as $item){
print_r($item);
}
似乎上述PHP代碼塊是通過部分地正確的。我獲得了正確數量的「旅程」,但是它自己的$ item是空的。
任何解決方案?請不要建議使用SoapClient來檢索結果。我無法從curl_multi移動。我已經有了結果,我需要解析它。預先感謝您