Bonjour à tous,
Je cherche une ou des âmes charitables qui pourront m'aider sur un problème un peu particulier avec SOAP.
Voilà ma requête SOAP en PHP, on ne peut plus simple:
La réponse contient normalement 8 informations différentes mais au lieu de me les renvoyer sous forme d'array elles s'affichent toutes sur une seule ligne de type rep1rep2rep3rep4rep5rep6rep7rep8. Le problème est donc que la réponse n'est pas renvoyée sous forme de tableau. Or j'ai besoin d'un tableau pour pouvoir exploiter les données et non d'une simple ligne inexploitable :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $client = new SoapClient('some.wdsl'); $result = $client->Function(array('arg1' => 'example')); echo $result->FunctionResponse;
Mais, si j'effectue:
Alors je vois bien les 8 informations s'afficher au format XML et délimitées par des balises.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $client = new SoapClient('some.wdsl'); $result = $client->Function(array('arg1' => 'example')); echo $xml = $client->__getLastResponse();
J'ai donc pensé à faire:
Avec une fonctione XML2Array qui convertit toute chaine XML en array mais cela me renvoi un tableau associatif de ce type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $client = new SoapClient('some.wdsl'); $result = $client->Function(array('arg1' => 'example')); $xml = $client->__getLastResponse(); $array = XML2Array::createArray(($xml)); print_r($array);
Or, si je remplaceArray ( [soap:Envelope] => Array ( [soap:Body] => Array ( [FunctionResponse] => Array ( [FunctionResult] => rep1rep2rep3rep4rep5rep6rep7rep8 ) ) ) )
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part $array = XML2Array::createArray(($xml));
ça marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $array = XML2Array::createArray((le contenu de $xml si je fais un echo $xml));
Mais je veux pouvoir le faire à l'intérieur même de mon code (en live) et non afficher d'abord le contenu de $xml en faisant echo $xml puis le copier à la main dans mon appel de la fonction XML2Array.
Mon unique but est donc de convertir la réponse SOAP en quelque chose d'exploitable (un tableau idéalement) pour que je puisse isoler chacun des 8 résultats dans une variable.
Partager