Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengeluarkan Elemen \'pembayaran\' dengan Cekap daripada Respons XML SOAP?

Bagaimanakah Saya Boleh Mengeluarkan Elemen \'pembayaran\' dengan Cekap daripada Respons XML SOAP?

Barbara Streisand
Barbara Streisandasal
2024-12-06 10:43:16839semak imbas

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

Menghuraikan SOAP XML: Panduan Komprehensif

Mendapatkan elemen 'pembayaran' daripada SOAP XML boleh menjadi tugas yang mencabar, terutamanya apabila ruang nama diberi awalan terlibat. Artikel ini akan menyediakan penyelesaian kepada isu ini dan membimbing anda melalui proses menghuraikan SOAP XML dengan berkesan.

Ruang Nama SOAP XML

Ruang nama dalam XML digunakan untuk membezakan elemen daripada perbendaharaan kata XML yang berbeza. Dalam SOAP XML yang disediakan, elemen 'pembayaran' tergolong dalam ruang nama berikut:

xmlns="http://apilistener.envoyservices.com"

Awalan ruang nama ('xmlns') ini menyebabkan isu dalam percubaan penghuraian anda, kerana ungkapan XPath tidak dapat padankan elemen dengan ruang nama yang betul.

Melucutkan Ruang Nama Awalan

Satu penyelesaian mudah ialah mengalih keluar awalan ruang nama daripada respons XML sebelum menghuraikannya dengan simplexml. Ini boleh dicapai menggunakan penggantian rentetan ringkas:

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

Ini akan mengalih keluar awalan ruang nama secara berkesan daripada XML dan membenarkan simplexml menghuraikan respons dengan betul.

Ekspresi XPath untuk 'pembayaran'

Sekarang setelah awalan ruang nama telah dialih keluar, anda boleh menggunakan Ekspresi XPath untuk mengekstrak elemen 'pembayaran':

$item = $xml->PaymentNotification->payment;

Ini akan menetapkan elemen 'pembayaran' kepada pembolehubah $item, membolehkan anda mengakses elemen anaknya seperti berikut:

echo $item->uniqueReference; // ESDEUR11039872

Kesimpulan

Menghuraikan SOAP XML boleh menjadi mudah jika anda memahami konsep ruang nama dan gunakan teknik penghuraian yang sesuai. Dengan mengalih keluar awalan ruang nama dan menggunakan ungkapan XPath yang betul, anda boleh mengeluarkan elemen 'pembayaran' yang diingini dengan mudah daripada respons SOAP.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Elemen \'pembayaran\' dengan Cekap daripada Respons XML SOAP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn