解析 SOAP XML
使用命名空間解析 XML 有時會導致混亂,尤其是使用 simpleXML 時。
問題陳述
給定的 SOAP XML 回應包含肥皂元素的命名空間前綴。提供了 PHP 中的程式碼片段來解析 XML,但傳回空結果。
正確的解析方法
一個簡單的解決方案是從 XML 中去除命名空間前綴在將其傳遞給 simpleXML先前回應:
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $soap_response); $xml = simplexml_load_string($clean_xml);
結果
使用此程式碼,您將得到以下結果:
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 ) ) ) )
這將允許您按預期存取payment 元素及其子元素。
以上是如何使用 simpleXML 在 PHP 中正確解析帶有命名空間的 SOAP XML 回應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!