Maison > développement back-end > tutoriel php > Comment analyser efficacement le XML SOAP avec des préfixes d'espace de noms à l'aide de SimpleXML ?

Comment analyser efficacement le XML SOAP avec des préfixes d'espace de noms à l'aide de SimpleXML ?

Susan Sarandon
Libérer: 2024-11-28 09:22:16
original
462 Les gens l'ont consulté

How to Efficiently Parse SOAP XML with Namespace Prefixes Using SimpleXML?

Comment analyser SOAP XML : suppression des préfixes d'espace de noms pour SimpleXML

Lors de l'analyse de documents XML SOAP, les préfixes d'espace de noms peuvent présenter des défis pour les bibliothèques comme simplexml . Ce problème survient lorsque vous rencontrez des réponses XML similaires à celles-ci :

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <PaymentNotification xmlns="http://apilistener.envoyservices.com">
      <payment>
        <!-- Payment data -->
      </payment>
    </PaymentNotification>
  </soap:Body>
</soap:Envelope>
Copier après la connexion

Les tentatives d'analyse d'une telle chaîne XML à l'aide de simplexml, comme le code suivant, aboutissent souvent à des résultats vides :

$xml = simplexml_load_string($soap_response);
$xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
foreach ($xml->xpath('//payment') as $item)
{
    print_r($item);
}
Copier après la connexion

Pour résoudre ce problème et analyser avec succès le XML SOAP avec les préfixes d'espace de noms, une approche simple mais efficace consiste à supprimer ces préfixes avant de transmettre le XML à simplexml. Voici comment procéder :

$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

En supprimant les préfixes d'espace de noms, le XML devient plus facile à analyser pour simplexml. L'objet SimpleXMLElement résultant contiendrait les données souhaitées imbriquées sous et . Cette technique vous permet de manipuler et d'accéder facilement aux données XML SOAP analysées selon vos besoins.

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