J'ai passé les derniers jours à essayer d'analyser une réponse SOAP, mais je n'arrive pas à la faire fonctionner. Je voudrais pouvoir obtenir tous les objets "oproduct".Comment analyser la réponse SOAP sans SoapClient
EDIT: Je le fais de cette façon au lieu d'utiliser le client SOAP intégré car j'ai besoin de faire des requêtes parallèles en utilisant multi_curl.
Voici mon code:
$xml = simplexml_load_string($response);
$xml->registerXPathNamespace('soap-env', 'http://schemas.xmlsoap.org/soap/envelope/');
foreach ($xml->xpath('//oproduct') as $item)
{
// do something
}
Voici la réponse:
<soap-env:envelope xmlns:ns1="http://v3.core.com.productserve.com/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:body>
<ns1:getproductlistresponse>
<oproduct>
<iid>113133802</iid>
<icategoryid>270</icategoryid>
<imerchantid>1547</imerchantid>
<iadult>0</iadult>
<sname>The Ashes/5th Test - England v Australia - Day 1</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=113133802&a=111402&m=1547&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/1547/113133802.jpg</sawthumburl>
<fprice>119.99</fprice>
</oproduct>
<oproduct>
<iid>113133791</iid>
<icategoryid>270</icategoryid>
<imerchantid>1547</imerchantid>
<iadult>0</iadult>
<sname>The Ashes/1st Test - England v Australia - Day 1</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=113133791&a=111402&m=1547&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/1547/113133791.jpg</sawthumburl>
<fprice>69.99</fprice>
</oproduct>
<oproduct>
<iid>51155349</iid>
<icategoryid>428</icategoryid>
<imerchantid>513</imerchantid>
<iadult>0</iadult>
<sname>Rapitest DTM 118 Damp Test Meter</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=51155349&a=111402&m=513&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/513/51155349.jpg</sawthumburl>
<fprice>18.35</fprice>
</oproduct>
<oproduct>
<iid>187948</iid>
<icategoryid>474</icategoryid>
<imerchantid>496</imerchantid>
<iadult>0</iadult>
<sname>Rapitest Dm 10 Electrical Multimeter</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=187948&a=111402&m=496&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/496/187948.jpg</sawthumburl>
<fprice>26.71</fprice>
</oproduct>
<oproduct>
<iid>51155353</iid>
<icategoryid>428</icategoryid>
<imerchantid>513</imerchantid>
<iadult>0</iadult>
<sname>Rapitest DM 10 Electrical Multimeter</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=51155353&a=111402&m=513&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/513/51155353.jpg</sawthumburl>
<fprice>22.7</fprice>
</oproduct>
<oproduct>
<iid>49152850</iid>
<icategoryid>474</icategoryid>
<imerchantid>1366</imerchantid>
<iadult>0</iadult>
<sname>Testboy Profi LED Plus</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=49152850&a=111402&m=1366&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/1366/49152850.jpg</sawthumburl>
<fprice>44.99</fprice>
</oproduct>
<oproduct>
<iid>51155350</iid>
<icategoryid>428</icategoryid>
<imerchantid>513</imerchantid>
<iadult>0</iadult>
<sname>Rapitest ETP 116 Electrical Test Probe</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=51155350&a=111402&m=513&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/513/51155350.jpg</sawthumburl>
<fprice>17.55</fprice>
</oproduct>
<oproduct>
<iid>51155351</iid>
<icategoryid>428</icategoryid>
<imerchantid>513</imerchantid>
<iadult>0</iadult>
<sname>Rapitest ET 111 Electrical Test Meter</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=51155351&a=111402&m=513&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/513/51155351.jpg</sawthumburl>
<fprice>13.55</fprice>
</oproduct>
<oproduct>
<iid>72326941</iid>
<icategoryid>474</icategoryid>
<imerchantid>496</imerchantid>
<iadult>0</iadult>
<sname>Rapitest Etp 116 Electrical Test Probe</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=72326941&a=111402&m=496&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/496/72326941.jpg</sawthumburl>
<fprice>20.66</fprice>
</oproduct>
<oproduct>
<iid>49338340</iid>
<icategoryid>206</icategoryid>
<imerchantid>80</imerchantid>
<iadult>0</iadult>
<sname>Ladies Protest Zekke Jacket True Black</sname>
<sawdeeplink>http://www.awin1.com/pclick.php?p=49338340&a=111402&m=80&platform=cs</sawdeeplink>
<sawthumburl>http://images.productserve.com/thumb/80/49338340.jpg</sawthumburl>
<fprice>54.99</fprice>
</oproduct>
<itotalcount>6350</itotalcount>
</ns1:getproductlistresponse>
</soap-env:body>
</soap-env:envelope>
Merci Jeremy d'avoir répondu. J'utilise PHP5. La raison pour laquelle je le fais de cette façon est parce que j'ai besoin de faire des requêtes parallèles avec multi_curl. J'ai essayé ce que tu as suggéré, mais ça revient faux maintenant. – Joe
Salut Joe, oublie ma dernière édition. Je pensais ouvrir un éditeur de code et essayer cela, mais le problème que je rencontre est que je ne peux pas obtenir simplexml_load_string() pour analyser la chaîne de réponse. Il retourne juste un objet SimpleXML vide. Je continuerai à essayer et je posterai si je reçois la réponse. – Jeremy
Merci pour votre aide Jeremy. Je vais essayer de jouer avec le code que vous avez ajouté ci-dessus et voir si je peux le faire fonctionner. – Joe