Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menghuraikan Respons XML SOAP dalam PHP dengan Cekap untuk Mengelak Isu Awalan Ruang Nama?
Menghuraikan SOAP XML: Penyelesaian Praktikal
Tugas menghuraikan respons XML SOAP boleh menjadi menakutkan kerana kehadiran awalan ruang nama. Ini boleh membawa kepada hasil yang tidak dijangka apabila menggunakan fungsi PHP terbina dalam seperti simpleXML.
Cabaran:
Menghuraikan SOAP XML memerlukan menangani awalan ruang nama, yang boleh mengaburkan yang diingini elemen. Pertimbangkan tindak balas SOAP XML berikut:
<PaymentNotification xmlns="http://apilistener.envoyservices.com"> <payment> <uniqueReference>ESDEUR11039872</uniqueReference> <epacsReference>74348dc0-cbf0-df11-b725-001ec9e61285</epacsReference> <postingDate>2010-11-15T15:19:45</postingDate> [Additional payment information] </payment> </PaymentNotification>
The Penyelesaian:
Satu cara berkesan untuk memudahkan penghuraian XML SOAP adalah untuk menghapuskan awalan ruang nama. Ini boleh dicapai dengan mengubah suai XML sebelum menghantarnya melalui simpleXML:
$xml_response = '<SOAP XML here>'; $clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $xml_response); $xml = simplexml_load_string($clean_xml);
Kini, anda boleh mengakses elemen 'pembayaran' yang dikehendaki tanpa menghadapi isu yang disebabkan oleh awalan ruang nama:
foreach ($xml->PaymentNotification->payment as $item) { print_r($item); }
Pendekatan mudah ini akan mengembalikan elemen 'pembayaran' dengan semua elemen anak dan nilainya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Respons XML SOAP dalam PHP dengan Cekap untuk Mengelak Isu Awalan Ruang Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!