SOAPレスポンスとその種類に詳しくないので、タイトルを間違えていたら大変申し訳ありません。しかし、それは WSDL 応答だと思います。少なくとも、WSDL リンクから取得しました...
次のURLがあります http://somedomain.com/j.svc?wsdl
そして、curl_multi を使用してリクエストを行った後、次のレスポンスが返ってきました。読みやすくするため、応答は 2 つの結果に短縮されました
応答は次のとおりです。
<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 コード片は部分的に正しいようです。「Journey」の正しい量を取得しますが、$item 自体は空です。
解決策はありますか?SoapClient を使用して結果を取得することはお勧めしません。curl_multi から移動できません。私はすでに結果を持っており、それを解析する必要があります。前もって感謝します