Cara Menghuraikan XML dengan Ruang Nama Menggunakan SimpleXML
Masalah:
Apabila cuba menghuraikan XML dengan ruang nama menggunakan SimpleXML, menghadapi masalah dengan registerXPathNamespace() kaedah.
Struktur XML:
<root xmlns:event="http://www.webex.com/schemas/2002/06/service/event"> <event:event> <event:sessionKey>...</event:sessionKey> ... </event:event> ... </root>
Contoh Pertanyaan Xpath:
Percubaan untuk mengekstrak 'event:sessionKey' nilai menggunakan:
$xml->registerXPathNamespace('e', 'http://www.webex.com/schemas/2002/06/service/event'); $event->xpath('//e:sessionKey')
Penyelesaian:
Isunya terletak pada keperluan kedua-dua awalan ruang nama ('e') dan URI ruang nama penuh dalam pertanyaan XPath , walaupun tanpa menggunakan registerXPathNamespace().
Diperbetulkan Kod:
$xml = new SimpleXMLElement($r); foreach ($xml->xpath('//event:event') as $event) { var_export($event->xpath('event:sessionKey')); }
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan XML Ruang Nama dengan betul dengan XPath SimpleXML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!