Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menghuraikan SOAP XML dengan Cekap dengan Awalan Ruang Nama Menggunakan SimpleXML?

Bagaimana untuk Menghuraikan SOAP XML dengan Cekap dengan Awalan Ruang Nama Menggunakan SimpleXML?

Susan Sarandon
Lepaskan: 2024-11-28 09:22:16
asal
535 orang telah melayarinya

How to Efficiently Parse SOAP XML with Namespace Prefixes Using SimpleXML?

Cara Menghuraikan SOAP XML: Melucutkan Awalan Ruang Nama untuk SimpleXML

Apabila menghuraikan dokumen SOAP XML, awalan ruang nama boleh memberikan cabaran untuk perpustakaan seperti simplexml . Isu ini timbul apabila menghadapi respons XML yang serupa dengan yang berikut:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <PaymentNotification xmlns="http://apilistener.envoyservices.com">
      <payment>
        <!-- Payment data -->
      </payment>
    </PaymentNotification>
  </soap:Body>
</soap:Envelope>
Salin selepas log masuk

Percubaan untuk menghuraikan rentetan XML sedemikian menggunakan simplexml, seperti kod berikut, selalunya menghasilkan keputusan kosong:

$xml = simplexml_load_string($soap_response);
$xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
foreach ($xml->xpath('//payment') as $item)
{
    print_r($item);
}
Salin selepas log masuk

Untuk menyelesaikan isu ini dan berjaya menghuraikan SOAP XML dengan awalan ruang nama, pendekatan yang mudah namun berkesan adalah untuk menanggalkan awalan ini sebelum menghantar XML ke simplexml. Begini caranya:

$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

Dengan mengalih keluar awalan ruang nama, XML menjadi lebih mudah untuk simplexml dihuraikan. Objek SimpleXMLElement yang terhasil akan mengandungi data yang dikehendaki bersarang di bawah dan . Teknik ini membolehkan anda memanipulasi dan mengakses data XML SOAP yang dihuraikan mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan SOAP XML dengan Cekap dengan Awalan Ruang Nama Menggunakan SimpleXML?. 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