Penghuraian XML
Untuk membaca dan mengemas kini - mencipta dan memproses - dokumen XML, anda memerlukan penghurai XML.
Terdapat dua jenis asas penghurai XML:
· Penghurai berasaskan pokok: Penghurai ini menukarkan dokumen XML kepada struktur pepohon. Ia menganalisis keseluruhan dokumen dan menyediakan akses kepada elemen dalam pepohon, seperti Model Objek Dokumen (DOM).
· Penghurai berasaskan masa: Anggap dokumen XML sebagai satu siri acara. Apabila peristiwa tertentu berlaku, penghurai memanggil fungsi untuk mengendalikannya.
Penghurai DOM ialah penghurai berasaskan pokok.
Sila lihat serpihan dokumen XML berikut:
<?xml version="1.0" encoding="ISO-8859-1"?>
<from>Jani< /from>
XML DOM Menganggap XML di atas sebagai struktur pokok:
· Tahap 1: Dokumen XML
· Tahap 2: Elemen akar: <from> ;
· Tahap 3: Elemen teks: "Jani"
Pasang
DOM Fungsi penghurai XML adalah sebahagian daripada teras PHP. Tiada pemasangan diperlukan untuk menggunakan fungsi ini.
Fail XML
Fail XML berikut akan digunakan dalam contoh kami:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
Muat dan keluarkan XML
Kita perlu memulakan penghurai XML, memuatkan XML dan mengeluarkannya:
Instance
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
Kod di atas akan output :
ToveJaniReminder Jangan lupakan saya hujung minggu ini!
Jika anda melihat kod sumber dalam tetingkap penyemak imbas, anda akan melihat HTML berikut:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
Contoh di atas Cipta DOMDocument-Object dan muatkan XML dalam "note.xml" ke dalam objek dokumen ini.
Fungsi saveXML() meletakkan dokumen XML dalaman ke dalam rentetan supaya kita boleh mengeluarkannya.
Melintasi XML
Kami mahu memulakan penghuraian XML, memuatkan XML dan berulang semula <nota> ; Semua elemen elemen:
instance
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br>"; } ?>
Kod di atas akan mengeluarkan:
#text =
to = Tove
# teks =
daripada = Jani
#teks =
tajuk = Peringatan
#teks =
badan = Jangan lupa saya hujung minggu ini!
#teks =
Dalam contoh di atas, anda melihat bahawa terdapat nod teks kosong antara setiap elemen.
Apabila XML dijana, ia selalunya akan mengandungi ruang kosong antara nod. Penghurai DOM XML menganggapnya sebagai elemen biasa, yang kadangkala boleh menyebabkan masalah jika anda tidak memberi perhatian kepadanya.