Parsing XML dengan mudah menggunakan SimpleXML dari PHP 5
Saat ini teknologi website sudah memasuki trend terbaru dimana dari satu aplikasi ke aplikasi yang lain dapat bertukar informasi dengan mudah. Sebuah pemikiran tentang sharing data antar platform inilah yang menjadi dasar trend Web 2.0.
XML yang semula hanya digunakan untuk media reporting data dengan format tertentu saat ini menjadi pemeran utama dalam hal sharing informasi antar platform yang berbeda. Hampir semua bahasa pemrograman dapat mengoperasikan file XML seperti generate, parsing dan lain-lain. Ketika suatu aplikasi men-generate suatu XML, maka aplikasi lain dengan bahasa pemrograman yang sama atau berbeda dapat memanfaatkan XML tersebut dengan melakukan suatu parsing (penterjemahan dokumen) untuk keperluan data di aplikasi yang telah dibangun.
Pada artikel kali ini saya ingin mengangkat teknik dasar parsing XML. Pada saat mengenal XML saya cukup direpotkan dalam hal parsing data. Tidak peduli apakah format pada XML itu sederhana atau bukan tetap saja pekerjaaan parsing XML sangat tidak menyenangkan untuk saya karena kerumitannya. Namun sejak saya mencoba membaca-baca lagi tentang fasilitas-fasilitas terbaru bawaan PHP5, ternyata PHP5 telah menyediakan beberapa Class yang diperuntukkan kepada para developer dalam mempermudah melakukan parsing XML seperti DOM Functions, DOM XML Functions dan SimpleXML functions.
Saya sudah mencoba DOM Functions dan DOM XML Functions namun ketika saya mengetahui simplisitas pada SimpleXML functions saya pun tidak lagi menggunakan kedua fasilitas sebelumnya. Sekarang kita akan melihat betapa SimpleXML functions sangat membantu dalam penterjemahan (parsing) XML. Berikut saya berikan contoh file XML sederhana dengan nama “buku.xml”.
<?xml version='1.0' standalone='yes'?> <databuku> <buku> <judul>Dasar Pemrograman Ajax</judul> <penerbit>Melex Media</penerbit> <penulis>Chandra Jatnika</penulis> <sinopsis>Buku ini mengajarkan tentang dasar pemrograman ajax, anda akan dibimbing dari script yang sangat sederhana sampai tingkat yang cukup rumit namun dengan contoh-contoh yang sangat dapat dimengerti</sinopsis> <rating level="lumayan">6</rating> </buku> <buku> <judul>Pengenalan Teknologi Web 2.0</judul> <penerbit>T-10 Media</penerbit> <penulis>T-10 Jatnika</penulis> <sinopsis>Teknologi web saat ini semakin berkembang dan hasil perkembangan itu munculah trend web 2.0.</sinopsis> <tahun>2008</tahun> <rating level="bagus">8</rating> </buku> </databuku>
Lalu cara untuk menterjemahkan format diatas menjadi lebih “manusiawi” dengan SimpleXML adalah seperti berikut.
<? /* sebeluimnya periksa terlebih dahulu apakah class SimpleXMLElement sudah support dalam package class PHP5 di dalam komputer / hosting anda */ if(class_exists('SimpleXMLElement')){ $contentxml = file_get_contents('buku.xml'); $xml = new SimpleXMLElement($contentxml); // jika ingin mengambil judul buku pertama echo '<u>Judul</u> Buku Ke-1: <b>'.$xml->buku[0]->judul.'</b><br />'; // jika ingin mengambil penulis buku kedua echo '<u>Penulis</u> Buku Ke-2: <b>'.$xml->buku[1]->penulis.'</b><br />'; // jika ingin mengambil nilai property sekaligus value dari sebuah node $rating = $xml->buku[1]->rating; // tampung terlebih dahulu dalam sebuah variable echo '<u>Rating</u> Buku Ke-2: <b>'.$rating.' ( '.$rating['level'].' )</b><hr />'; // looping data foreach($xml->buku as $record_buku){ foreach($record_buku as $buku){ // method getName() mengembalikan nilai nama tag echo ucfirst($buku->getName()).': '.$buku; // jika nama tag adalah 'rating' maka tampilkan nilai atribut-nya if($buku->getName() == 'rating') echo ' ('.$buku['level'].')'; echo '<br />'; } echo '<hr />'; } }else echo 'SimpleXMLElement class is not exists'; ?>
Hasil dari script diatas dapat anda lihat pada link ini.
Nah, setelah melihat simplisitas dan kehebatan SimpleXML dalam menterjemahkan suatu file XML saya harap anda tidak ragu lagi untuk saling bertukar data dengan aplikasi lain. Jangan pernah ragu untuk mencoba trend teknologi terbaru. Semoga artikel ini dapat membantu dan menambah wawasan… ^_^



Chandra Jatnika

keren oi
ten kalo pake php 4, bisa pake class apa buat bikin xml?
trus kalo ambil data dr database gmana carana?
Good question…
Untuk PHP4 kita harus memanfaatkan library open source dari developer lain, contohnya adalah class XMLParser yang dibuat oleh Adam A Flynn, penggunaannya sama seperti SimpleXML. Klik LINK INI
pertanyaan satu lagi kok ga dijawab?
trus kalo ambil data na dr database (MYSQL), buat dibuat xml na gmana pak?
Sebenernya saya pengen buat artikel lagi tentang generate XML dengan PHP, namun untuk dasar-dasar men-generate XML dari MySQL ini sy ada linknya. Klik Link I, dan Link II
om artikel yang bagus..ak sangat membutuhkan artikel ini..mana dikasih studi kasus na…thanks..
om bisa kasih share buat manipulasi data di XML menggunakan PHP-DOM kah??syntax input-edit-delete na??
klo ad tolong dshare ya??tolong kirim ke mail y??
thanks…