首頁 >後端開發 >php教程 >如何使用 simpleXML 在 PHP 中正確解析帶有命名空間的 SOAP XML 回應?

如何使用 simpleXML 在 PHP 中正確解析帶有命名空間的 SOAP XML 回應?

Linda Hamilton
Linda Hamilton原創
2024-12-05 05:08:10759瀏覽

How to Correctly Parse SOAP XML Responses with Namespaces in PHP Using simpleXML?

解析 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn