Analyse SOAP XML
L'analyse XML avec des espaces de noms peut parfois prêter à confusion, en particulier lors de l'utilisation de simpleXML.
Énoncé du problème
La réponse XML SOAP donnée contient un préfixe d'espace de noms pour le savon éléments. Un extrait de code en PHP est fourni pour analyser le XML mais renvoie un résultat vide.
Approche d'analyse correcte
Une solution simple consiste à supprimer les préfixes d'espace de noms du XML réponse avant de la transmettre à simpleXML :
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $soap_response); $xml = simplexml_load_string($clean_xml);
Résultat
En utilisant ce code, vous obtiendrez le résultat suivant :
SimpleXMLElement Object ( [Body] => SimpleXMLElement Object ( [PaymentNotification] => SimpleXMLElement Object ( [payment] => SimpleXMLElement Object ( [uniqueReference] => ESDEUR11039872 [epacsReference] => 74348dc0-cbf0-df11-b725-001ec9e61285 [postingDate] => 2010-11-15T15:19:45 [bankCurrency] => EUR [bankAmount] => 1.00 [appliedCurrency] => EUR [appliedAmount] => 1.00 [countryCode] => ES [bankInformation] => Sean Wood [merchantReference] => ESDEUR11039872 ) ) ) )
Cela vous permettra d'accéder à l'élément de paiement et à ses éléments enfants comme prévu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!