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 Extensible Markup Language, format berbasis tag yang memungkinkan Anda mendefinisikan tag khusus untuk menyusun dan mentransfer data.
  • ๐ŸŒณ DOM: Document Object Model (DOML) memandang dokumen XML atau HTML sebagai sebuah pohon, sehingga kode dapat menavigasi dan mengedit node.
  • ๐Ÿ”„ Pengurai XML: Sebuah parser mengubah dokumen XML menjadi objek DOM yang kemudian diproses oleh PHP. JavaSkrip, atau Python bisa membaca dan mengubah.
  • ???? Membaca XML: simplexml_load_file memuat file ke dalam objek, sehingga Anda mengakses record dengan sintaks panah seperti $xml->record->name.
  • ๏ธ Membuat XML: Kelas DOMDocument membangun dokumen node demi node dengan menggunakan createElement dan appendChild, kemudian menyimpan file tersebut.
  • ๏ธ SimpleXML vs DOM: SimpleXML cepat dibaca, sedangkan DOMDocument cocok untuk pembuatan yang presisi dan manipulasi yang kompleks.
  • ๐Ÿค– Bantuan AI: Alat AI dapat menghasilkan kode penguraian untuk struktur XML tertentu dan mengkonversi antara XML, JSON, dan array PHP.

PHP dan XML

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

Baca XML menggunakan 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

Buat dokumen XML menggunakan PHP

Buka file movies_list.xml.

Buat dokumen XML menggunakan PHP

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.

Pertanyaan Umum Demo Slot

Keduanya menyimpan data terstruktur, tetapi XML menggunakan tag dan mendukung atribut, komentar, dan skema, sedangkan JSON lebih ringan dan memetakan langsung ke array dan objek. JSON umum digunakan untuk API; XML cocok untuk dokumen dan konfigurasi.

Muat file dengan SimpleXML atau DOMDocument, ubah nilai atau atribut node, lalu tulis kembali. Dengan SimpleXML, edit properti dan panggil asXML('file.xml'); dengan DOMDocument, edit node dan panggil save().

XPath adalah bahasa kueri untuk memilih node dalam dokumen XML. Di PHP, panggil `$xml->xpath('//record/name')` dengan SimpleXML, atau gunakan kelas DOMXPath, untuk mengambil elemen yang cocok tanpa perlu mencari secara manual.ping di seluruh pohon.

Ya. AI dapat menghasilkan kode menggunakan simplexml_load_string, json_encode, dan json_decode untuk mengkonversi antar format, dan menandai data yang tidak dipetakan dengan benar, seperti atribut XML atau konten campuran. Verifikasi hasilnya.

Ya. Tempelkan contoh XML Anda, dan AI dapat menghasilkan kode SimpleXML atau DOMDocument yang membaca elemen dan atribut yang Anda butuhkan, termasuk perulangan untuk data yang berulang. Uji coba dengan file sungguhan.

Ringkaslah postingan ini dengan: