SimpleXML dan print_r() - Mengapa Ini Kosong?
Apabila menggunakan SimpleXML untuk memuatkan fail XML dan kemudian mencetak kandungannya menggunakan print_r (), anda mungkin menghadapi output kosong yang tidak dijangka. Isu ini berpunca daripada cara print_r() mengendalikan objek SimpleXML.
Mengapa print_r() Menunjukkan Tatasusunan Kosong untuk Elemen SimpleXML?
Print_r() dan var_dump( ) tidak sentiasa berkesan memaparkan objek SimpleXML disebabkan oleh mekanik dalaman yang kompleks SimpleXML. Sebaliknya, adalah disyorkan untuk menggunakan kaedah asXML() untuk memeriksa kandungan objek XML.
Dalam kes khusus anda, print_r() menunjukkan elemen Item kosong kerana atribut bersarang berada dalam ruang nama yang berbeza.
Mengakses Elemen Ruang Nama dalam SimpleXML
Untuk mengakses elemen dalam ruang nama yang berbeza menggunakan SimpleXML, anda boleh menggunakan pelbagai kaedah:
Contoh Kod:
Menggunakan kanak-kanak(ruang nama, include_ns):
<code class="php">$ArrayOfItem->Item->children("http://systinet.com/wsdl/com/osm/webservices/service/", true);</code>
Menggunakan xpath():
<code class="php">$ArrayOfItem->Item->xpath('//q1:Attribute');</code>
Menggunakan registerXPathNamespace():
<code class="php">$ArrayOfItem->Item->registerXPathNamespace('q1', 'http://systinet.com/wsdl/com/osm/webservices/service/'); $attributes = $ArrayOfItem->Item->xpath('//q1:Attribute');</code>
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan berdasarkan artikel anda, memainkan aspek \'mengapa ia kosong\': * **SimpleXML dan `print_r()`: Mengapakah Ia Menunjukkan Tatasusunan Kosong untuk Elemen XML?** **. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!