Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengeluarkan Elemen \'pembayaran\' dengan Cekap daripada Respons XML SOAP?
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!