Maison > développement back-end > tutoriel php > Comment puis-je extraire efficacement l'élément « paiement » d'une réponse XML SOAP ?

Comment puis-je extraire efficacement l'élément « paiement » d'une réponse XML SOAP ?

Barbara Streisand
Libérer: 2024-12-06 10:43:16
original
839 Les gens l'ont consulté

How Can I Efficiently Extract the 'payment' Element from a SOAP XML Response?

Analyse SOAP XML : un guide complet

Obtenir l'élément « paiement » à partir de SOAP XML peut être une tâche difficile, en particulier lorsque les préfixes d'espace de noms sont impliqués. Cet article fournira une solution à ce problème et vous guidera tout au long du processus d'analyse efficace de SOAP XML.

L'espace de noms SOAP XML

Les espaces de noms en XML sont utilisés pour distinguer éléments issus de différents vocabulaires XML. Dans le XML SOAP fourni, l'élément 'payment' appartient à l'espace de noms suivant :

xmlns="http://apilistener.envoyservices.com"
Copier après la connexion

Ce préfixe d'espace de noms ("xmlns") est à l'origine du problème lors de votre tentative d'analyse, car l'expression XPath est incapable de faites correspondre l'élément avec l'espace de noms correct.

Suppression de l'espace de noms Préfixe

Une solution simple consiste à supprimer le préfixe d'espace de noms de la réponse XML avant de l'analyser avec simplexml. Ceci peut être réalisé en utilisant un simple remplacement de chaîne :

$your_xml_response = '<Your XML here>';
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $your_xml_response);
$xml = simplexml_load_string($clean_xml);
Copier après la connexion

Cela supprimera efficacement les préfixes d'espace de noms du XML et permettra à simplexml d'analyser correctement la réponse.

Expression XPath pour 'paiement'

Maintenant que le préfixe de l'espace de noms a été supprimé, vous pouvez utiliser une simple expression XPath pour extraire le Élément 'payment' :

$item = $xml->PaymentNotification->payment;
Copier après la connexion

Cela attribuera l'élément 'payment' à la variable $item, vous permettant d'accéder à ses éléments enfants comme suit :

echo $item->uniqueReference; // ESDEUR11039872
Copier après la connexion

Conclusion

L'analyse de SOAP XML peut être simple si vous comprenez les concepts d'espaces de noms et utilisez les techniques d'analyse appropriées. En supprimant le préfixe de l'espace de noms et en utilisant l'expression XPath correcte, vous pouvez facilement extraire l'élément « paiement » souhaité de la réponse SOAP.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal