Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann man SOAP-XML mit Namespace-Präfixen mithilfe von SimpleXML effizient analysieren?

Wie kann man SOAP-XML mit Namespace-Präfixen mithilfe von SimpleXML effizient analysieren?

Susan Sarandon
Freigeben: 2024-11-28 09:22:16
Original
477 Leute haben es durchsucht

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

So analysieren Sie SOAP-XML: Entfernen von Namespace-Präfixen für SimpleXML

Beim Parsen von SOAP-XML-Dokumenten können Namespace-Präfixe für Bibliotheken wie simplexml eine Herausforderung darstellen . Dieses Problem tritt auf, wenn auf XML-Antworten ähnlich der folgenden gestoßen wird:

<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>
Nach dem Login kopieren

Versuche, eine solche XML-Zeichenfolge mit simplexml zu analysieren, wie z. B. den folgenden Code, führen häufig zu leeren Ergebnissen:

$xml = simplexml_load_string($soap_response);
$xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
foreach ($xml->xpath('//payment') as $item)
{
    print_r($item);
}
Nach dem Login kopieren

Um dieses Problem zu beheben und SOAP-XML mit Namespace-Präfixen erfolgreich zu analysieren, besteht ein einfacher, aber effektiver Ansatz darin, diese Präfixe zu entfernen, bevor das XML an simplexml übergeben wird. So geht's:

$your_xml_response = '<Your XML here>';
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $your_xml_response);
$xml = simplexml_load_string($clean_xml);
Nach dem Login kopieren

Durch das Entfernen der Namespace-Präfixe wird das XML für simplexml einfacher zu analysieren. Das resultierende SimpleXMLElement-Objekt würde die gewünschten Daten enthalten, verschachtelt unter und . Mit dieser Technik können Sie die analysierten SOAP-XML-Daten nach Bedarf bequem bearbeiten und darauf zugreifen.

Das obige ist der detaillierte Inhalt vonWie kann man SOAP-XML mit Namespace-Präfixen mithilfe von SimpleXML effizient analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage