Pengenalan PHP Beginner kepada XML dan DOM
1.Apakah itu DOM
W3C DOM menyediakan satu set objek standard untuk dokumen HTML dan XML, serta piawaian untuk mengakses dan memanipulasi dokumen ini antara muka.
W3C DOM dibahagikan kepada bahagian yang berbeza (Teras, XML dan HTML) dan tahap yang berbeza (DOM Tahap 1/2/3):
* Teras DOM - Set standard objek yang mentakrifkan standard untuk mana-mana dokumen berstruktur
* XML DOM - mentakrifkan set standard objek untuk dokumen XML
* HTML DOM - mentakrifkan set standard objek untuk dokumen HTML
2.xml parsing
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 menukar 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
Lihat serpihan dokumen xml di bawah
<?xml version="1.0" encoding="ISO-8859 - 1"?>
<from>Jani</from>
XML DOM Anggap XML di atas sebagai struktur pokok:
Tahap 1: XML dokumen
Tahap 2: Elemen akar: <from>
Tahap 3: Elemen teks: "Jani"
Instance:
Mula-mula kita buat head.xml file xml dengan kod 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>
Kemudian kita buat fail php dengan kod berikut
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("head.xml"); print $xmlDoc->saveXML(); ?>
Cara melintasi xml
Mula-mula buat fail xml, head.xml
<?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>
dan kemudian buat fail php, kodnya adalah seperti berikut:
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("head.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item){ print $item->nodeName . " = " . $item->nodeValue . "<br>"; } ?>