PHP

PHP XML : DOM Parser – Kode dan Contohnya

Parser DOM bawaan memungkinkan untuk memproses dokumen XML dalam PHP.

XML DOM Parser

Parser DOM adalah parser berbasis pohon(tree-based parser).

Lihatlah pecahan dokumen XML berikut ini :

<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>

DOM melihat XML di atas sebagai struktur pohon:

  • Level 1: Dokumen XML
  • Level 2: Elemen root : <from>
  • Tingkat 3: Elemen teks: “Jani”

Instalasi

Fungsi parser DOM adalah bagian dari inti PHP. Tidak diperlukan instalasi untuk menggunakan fungsi ini.

File XML

File XML di bawah (“note.xml”) akan digunakan dalam contoh kita:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Load dan Keluaran XML

Kita akan menginisialisasi parser XML, load xml, dan mengeluarkannya :

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

print $xmlDoc->saveXML();
?>

Output dari kode di atas adalah :

Tove Jani Reminder Don't forget me this weekend!

Jika kita memcoba memilih “View source” di jendela browser, kita akan melihat HTML berikut :

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Contoh di atas membuat DOMDocument-Object dan memuat XML dari “note.xml” ke dalamnya.

Kemudian fungsi saveXML() menempatkan dokumen XML internal ke dalam sebuah string, sehingga kita dapat mengeluarkannya.

Looping melalui XML

Kita akan menginisialisasi parser XML, memuat XML dan mengulang semua elemen dari elemen <note> :

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

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
  print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?

Output dari kode di atas adalah :

#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =

Pada contoh di atas kita bisa lihat bahwa ada node teks kosong di antara setiap elemen.

Saat XML dibuat, sering kali XML berisi spasi putih di antara node. Pengurai XML DOM memperlakukan ini sebagai elemen biasa, dan jika kita tidak menyadarinya, terkadang menyebabkan masalah.


Hanifah Nurbaeti