Je suis vraiment désolé si j'ai fait un titre erroné, je ne suis pas familier avec les réponses SOAP et leurs types. Mais je suppose que c'est une réponse WSDL, du moins je l'ai obtenu à partir du lien WSDL...
J'ai l'url suivante http://somedomain.com/j.svc?wsdl
Et après avoir fait une requête en utilisant curl_multi, j'ai obtenu la réponse suivante. La réponse a été raccourcie à deux résultats pour qu'elle soit plus facile à lire.
La réponse est la suivante :
<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>
Est-il possible d'analyser le résultat en utilisant PHP ? J'ai fait de nombreuses recherches, notamment sur StackOverflow, et voici ce que j'ai réussi à trouver.
Pour analyser la réponse ci-dessus, je peux utiliser le code suivant :
$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);
}
Il semble que le morceau de code PHP ci-dessus soit partiellement correct. J'obtiens le nombre correct de "Journey" mais le $item est vide.
Des solutions ? Ne conseillez pas d'utiliser SoapClient pour récupérer le résultat. Je ne peux pas passer de curl_multi. J'ai déjà le résultat et j'ai besoin de le parser. Merci d'avance