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

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

Linda Hamilton
發布: 2024-12-05 05:08:10
原創
746 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板