DOM XML PHP

Pemecah DOM baku memungkinkan untuk mengendalikan dokumen XML di dalam PHP.

Apakah DOM?

W3C DOM menyediakan set objek standar untuk dokumen HTML dan XML, serta antarmuka standar untuk mengakses dan mengoperasikan dokumen ini.

W3C DOM dibahagikan kepada beberapa bahagian (Core, XML dan HTML) dan beberapa tahap (DOM Level 1/2/3):

  • Core DOM - Menentukan set objek standar untuk dokumen struktur
  • XML DOM - Menentukan set objek standar untuk dokumen XML
  • HTML DOM - Menentukan set objek standar untuk dokumen HTML

Jika anda mahu belajar lebih banyak tentang XML DOM, sila lawati Maklumat Tutorial XML DOM.

Pemecah XML

Untuk membaca dan mengupdate - menghasilkan dan mengendalikan - dokumen XML, anda memerlukan pemecah XML.

Terdapat dua jenis pemecah XML asas:

  • Pemecah berdasarkan pohon: Pemecah ini mengubah dokumen XML ke struktur pohon. Ia menganalisis keseluruhan dokumen dan menyediakan API untuk mengakses elemen dalam pohon, seperti Dokument Objek Model (DOM).
  • Pemecah berdasarkan peristiwa: Memandangkan dokumen XML seperti sekumpulan peristiwa. Ketika peristiwa tertentu berlaku, pemecah akan panggil fungsi untuk mengendalikannya.

Pemecah DOM adalah pemecah berdasarkan pohon.

Lihat dokumen fragmen XML di bawah:

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>John</from>

DOM XML memandangkan XML seperti struktur pohon:

  • Level 1: Dokumen XML
  • Level 2: Akar: <from>
  • Level 3: Elemen teks: "John"

Pemasangan

Fungsi pemecah DOM XML adalah bagian penting dari PHP. Ia boleh digunakan tanpa perlu pemasangan.

Fail XML

Dalam contoh kami akan menggunakan fail XML berikut:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

Muat dan keluarkan XML

Kami perlu menginisialisasi pemecah XML, memuat XML, dan mengeluarkannya:

Contoh

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>

Output kod di atas adalah:

George John Reminder Don't forget the meeting!

Jika anda melihat kod sumber di dalam tingkap pelayar anda, anda akan lihat yang berikut:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

Contoh di atas mencipta objek DOMDocument dan memuat XML daripada "note.xml" ke dalam objek dokumen ini.

Fungsi saveXML() mengisi dokumen XML internal ke dalam string, supaya kami dapat mengecetaknya.

Saring XML

Kami perlu menginitialkan parser XML, memuat XML, dan mengulangi semua elemen <note> dalam elemen:

Contoh

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
  {
  print $item->nodeName . " = " . $item->nodeValue . "<br />";
  }
?>

Output kod di atas adalah:

#text = 
to = George
#text = 
from = John
#text = 
heading = Pengingat
#text = 
body = Jangan lupa pertemuan!
#text =

Dalam contoh di atas, anda melihat ada node teks kosong di antara setiap elemen.

Ketika XML dihasilkan, ia biasanya mengandungi ruang putih di antara nod. Parser XML DOM memproses mereka sebagai elemen biasa, jika anda tidak menaruh perhatian kepadanya, kadang-kadang akan muncul masalah.

Jika anda mahu belajar lebih banyak tentang XML DOM, sila lawati Maklumat Tutorial XML DOM.