Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menghuraikan Respons XML SOAP dalam PHP dengan Cekap untuk Mengelak Isu Awalan Ruang Nama?

Bagaimanakah Saya Boleh Menghuraikan Respons XML SOAP dalam PHP dengan Cekap untuk Mengelak Isu Awalan Ruang Nama?

Barbara Streisand
Lepaskan: 2024-11-28 07:31:10
asal
1005 orang telah melayarinya

How Can I Efficiently Parse SOAP XML Responses in PHP to Avoid Namespace Prefix Issues?

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



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

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

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!

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