首頁 > 後端開發 > php教程 > 如何從 SOAP XML 回應中有效地提取「 payment 」元素?

如何從 SOAP XML 回應中有效地提取「 payment 」元素?

Barbara Streisand
發布: 2024-12-06 10:43:16
原創
839 人瀏覽過

How Can I Efficiently Extract the 'payment' Element from a SOAP XML Response?

解析SOAP XML:綜合指南

從SOAP XML 取得「 payment」元素可能是一項具有挑戰性的任務,特別是當命名空間前綴時都參與其中。本文將提供這個問題的解決方案,並引導您完成有效解析 SOAP XML 的過程。

SOAP XML 命名空間

XML 中的命名空間用於區分來自不同 XML 詞彙表的元素。在提供的SOAP XML 中,「 payment」 元素屬於以下命名空間:

xmlns="http://apilistener.envoyservices.com"
登入後複製

此命名空間前綴('xmlns') 導致您的解析嘗試出現問題,因為XPath 表達式無法將元素與正確的命名空間相符。

剝離命名空間前綴

一個簡單的解決方案是在使用 simplexml 解析 XML 回應之前從 XML 回應中刪除命名空間前綴。這可以使用簡單的字串替換來實現:

$your_xml_response = '<Your XML here>';
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $your_xml_response);
$xml = simplexml_load_string($clean_xml);
登入後複製

這將有效地從 XML 中刪除命名空間前綴,並允許 simplexml 正確解析回應。

XPath 表達式'Payment'

現在命名空間前綴已被刪除,您可以使用簡單的XPath 表達式來提取'Payment'元素:

$item = $xml->PaymentNotification->payment;
登入後複製

這會將「付款」元素分配給$item變量,允許您按如下方式訪問其子元素:

echo $item->uniqueReference; // ESDEUR11039872
登入後複製

結論

如果您了解命名空間的概念並使用適當的解析技術,解析SOAP XML 會很簡單。透過刪除命名空間前綴並使用正確的 XPath 表達式,您可以輕鬆地從 SOAP 回應中提取所需的「付款」元素。

以上是如何從 SOAP XML 回應中有效地提取「 payment 」元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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