Tutorial PHP XML: Membuat, Mengurai, Membaca dengan Contoh
โก Ringkasan Cerdas
PHP dan XML bekerja sama untuk menyusun, menyimpan, dan bertukar data antar sistem. Panduan ini menjelaskan XML, DOM, dan parser XML, kemudian menunjukkan cara membaca dokumen XML dengan SimpleXML dan cara membuatnya dengan kelas DOMDocument, diakhiri dengan kapan harus menggunakan masing-masing.

Apa itu XML?
XML adalah singkatan dari Extensible Markup Language.
XML digunakan untuk menyusun, menyimpan, dan mentransfer data dari satu sistem ke sistem lain.
XML mirip dengan HTML. Ia menggunakan tag pembuka dan penutup. Tidak seperti HTML, XML memungkinkan pengguna untuk mendefinisikan tag mereka sendiri.
Apa itu DOM?
DOM adalah singkatan dari Document Object Model.
Ini adalah standar lintas platform dan netral bahasa yang mendefinisikan cara mengakses dan memanipulasi data di:
- HTML
- XHTML
- XML
DOM XML digunakan untuk mengakses dan memanipulasi dokumen XML. Dia melihat dokumen XML sebagai struktur pohon.
Parser XML
Parser XML adalah program yang menerjemahkan dokumen XML menjadi objek XML Document Object Model (DOM).
Objek XML DOM kemudian dapat dimanipulasi menggunakan JavaNaskah, Python, PHP, dan bahasa lainnya.
Kata kunci CDATA, yang merupakan akronim dari (unparsed) Character Data, digunakan untuk mengabaikan karakter khusus seperti โ<โ dan ">โ saat mengurai dokumen XML.
Mengapa menggunakan XML?
- Layanan web seperti SOAP dan REST menggunakan format XML untuk bertukar informasi. Mempelajari apa itu XML dan bagaimana cara kerjanya memberi Anda keunggulan kompetitif sebagai pengembang, karena aplikasi modern banyak menggunakan layanan web.
- Dokumen XML dapat digunakan untuk menyimpan pengaturan konfigurasi suatu aplikasi.
- Fitur ini memungkinkan Anda membuat tag kustom sendiri, sehingga membuatnya lebih fleksibel.
Contoh Dokumen XML
Mari kita misalkan Anda sedang mengembangkanping Aplikasi yang mengambil data dari layanan web dalam format XML.
Berikut adalah contoh tampilan dokumen XML.
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
SINI,
- โ โ menentukan versi XML dan pengkodean yang akan digunakan
- โ โ adalah elemen akar.
- โ โฆ โ adalah elemen anak, satu per catatan karyawan.
Cara Membaca XML menggunakan PHP
Sekarang mari kita tulis kode yang akan membaca dokumen XML karyawan dan menampilkan hasilnya di peramban web. index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
SINI,
- โ$xml = simplexml_load_file('employees.xml');โ menggunakan fungsi simplexml_load_file untuk memuat file bernama employees.xml dan menetapkan isinya ke variabel $xml.
- โ$list = $xml->record;โ mengambil isi dari node record.
- โfor ($i = 0; $i < count(โฆ)โฆโ adalah perulangan for yang membaca array dan menampilkan hasilnya.
- โ$daftar[$i]->atribut()->man_no;โ membaca atribut man_no dari elemen tersebut
- โ$daftar[$i]->nama;โ membaca nilai elemen anak nama
- โ$list[$i]->posisi;โ membaca nilai elemen posisi anak
Menguji Pembaca XML
Dengan asumsi Anda telah menyimpan file index.php di folder phptuts/xml, telusuri ke URL http://localhost/phptuts/xml/index.php
Cara Membuat dokumen XML menggunakan PHP
Sekarang kita akan melihat cara membuat dokumen XML menggunakan PHP.
Kode berikut menggunakan kelas bawaan PHP DOMDocument untuk membuat dokumen XML.
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'Comedy'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
SINI,
- โ$dom = new DOMDocument();โ membuat sebuah instance dari kelas DOMDocument.
- โ$dom->pengkodean = 'utf-8';โ mengatur pengkodean dokumen ke utf-8
- โ$dom->xmlVersi = '1.0';โ menentukan nomor versi 1.0
- โ$dom->formatOutput = benar;โ memastikan bahwa output diformat dengan baik
- โ$root = $dom->createElement('Film');โ membuat simpul akar bernama Film
- โ$attr_movie_id = new DOMAttr('movie_id', '5467');โ mendefinisikan atribut movie_id dari node film.
- โ$dom->createElement('ElementName', 'ElementValue')โ membuat node anak. ElementName menentukan nama elemen, misalnya Judul. ElementValue menetapkan nilai node anak, misalnya Kampanye.
- โ$root->appendChild($movie_node);โ menambahkan node film ke node root Movies.
- โ$dom->appendChild($root);โ menambahkan node root ke dokumen XML.
- โ$dom->simpan($xml_file_name);โ menyimpan file XML di direktori root server web.
- โecho โ$xml_file_name telah berhasil dibuatโ;โ menampilkan pesan sukses.
Menguji XML Creator
Dengan asumsi Anda telah menyimpan file create_movies_list.php di folder phptuts/xml, telusuri ke URL http://localhost/phptuts/xml/create_movies_list.php
Buka file movies_list.xml.
SimpleXML vs DOMDocument
PHP menawarkan dua cara utama untuk bekerja dengan XML. SimpleXML paling cocok jika Anda terutama perlu membaca data, sedangkan DOMDocument memberikan kontrol yang lebih baik untuk membangun dan mengedit dokumen secara intensif. Tabel di bawah ini membandingkan keduanya.
| Aspek | SimpleXML | Dokumen DOM |
|---|---|---|
| Mudah digunakan | Sangat sederhana; dokumen tersebut berperilaku seperti objek bersarang. | API berbasis node yang lebih detail. |
| Terbaik untuk | Membaca dan sedikit mengedit | Membuat dokumen dan manipulasi kompleks. |
| Gaya akses | $xml->record->name | createElement() dan appendChild() |
| Dukungan XPath | Ya, melalui ->xpath() | Ya, melalui kelas DOMXPath. |
Aturan praktisnya adalah menggunakan SimpleXML terlebih dahulu untuk membaca feed dan file sederhana, dan beralih ke DOMDocument ketika Anda perlu membuat dokumen, menyisipkan node pada posisi tertentu, atau melakukan validasi terhadap skema.



