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
Lepaskan: 2024-12-06 10:43:16
asal
873 orang telah melayarinya

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"
Salin selepas log masuk

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);
Salin selepas log masuk

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;
Salin selepas log masuk

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

echo $item->uniqueReference; // ESDEUR11039872
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan