SOAP-XML analysieren
Das Parsen von XML mit Namespaces kann manchmal zu Verwirrung führen, insbesondere bei Verwendung von simpleXML.
Problemstellung
Die angegebene SOAP-XML-Antwort enthält ein Namespace-Präfix für die Soap Elemente. Zum Parsen des XML wird ein Codeausschnitt in PHP bereitgestellt, der jedoch ein leeres Ergebnis zurückgibt.
Korrekter Parsing-Ansatz
Eine einfache Lösung besteht darin, die Namespace-Präfixe aus dem XML zu entfernen Antwort, bevor Sie sie an simpleXML übergeben:
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $soap_response); $xml = simplexml_load_string($clean_xml);
Ergebnis
Mit diesem Code erhalten Sie das folgende Ergebnis:
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 ) ) ) )
Dadurch können Sie wie erwartet auf das Zahlungselement und seine untergeordneten Elemente zugreifen.
Das obige ist der detaillierte Inhalt vonWie kann ich SOAP-XML-Antworten mit Namespaces in PHP mithilfe von simpleXML korrekt analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!