Heim > Artikel > Backend-Entwicklung > Wie analysiert man XML mit mehreren Namespaces mithilfe von SimpleXML?
XML mit mehreren Namespaces mit SimpleXML analysieren
Das Parsen von XML-Dokumenten mit mehreren Namespaces stellt bei der Verwendung von SimpleXML eine Herausforderung dar. Um solche Dokumente erfolgreich zu analysieren, müssen wir die Namespace-Deklarationen verarbeiten.
Das bereitgestellte XML-Dokument verfügt über mehrere Namespaces:
<code class="xml"><soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <soap-env:Header> <eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader"> ... </eb:MessageHeader> <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"> ... </wsse:Security> </soap-env:Header> <soap-env:Body> <SessionCreateRS xmlns="http://www.opentravel.org/OTA/2002/11"> ... </SessionCreateRS> </soap-env:Body> </soap-env:Envelope></code>
Um dieses Dokument mit SimpleXML zu analysieren, können wir die folgenden Schritte ausführen:
<code class="php">$xml = simplexml_load_string($xmlString);</code>
<code class="php">$xml->registerXPathNamespace('soap-env', 'http://schemas.xmlsoap.org/soap/envelope/'); $xml->registerXPathNamespace('eb', 'http://www.ebxml.org/namespaces/messageHeader'); $xml->registerXPathNamespace('wsse', 'http://schemas.xmlsoap.org/ws/2002/12/secext');</code>
<code class="php">foreach ($xml->xpath('//eb:MessageHeader') as $header) { var_dump($header->xpath('//eb:CPAId')); // Outputs "something" }</code>
Durch Befolgen dieser Schritte können wir XML-Dokumente mit mehreren Namespaces mithilfe von SimpleXML erfolgreich analysieren, sodass wir effektiv auf Elemente in jedem Namespace zugreifen und diese bearbeiten können.
Das obige ist der detaillierte Inhalt vonWie analysiert man XML mit mehreren Namespaces mithilfe von SimpleXML?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!