Maison >développement back-end >tutoriel php >Comment analyser correctement les réponses XML SOAP avec des espaces de noms en PHP à l'aide de simpleXML ?

Comment analyser correctement les réponses XML SOAP avec des espaces de noms en PHP à l'aide de simpleXML ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-05 05:08:10821parcourir

How to Correctly Parse SOAP XML Responses with Namespaces in PHP Using simpleXML?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn