Monday 2 February 2015

TUTORIAL WEBSERVICES Import Data Format XML ke MySQL (Script)

Dalam praktikum ini akan dibahas bagaimana cara mengimport data buku yang ada dalam dokumen XML di atas ke dalam database MySQL.


Berikut ini adalah sebuah contoh dokumen XML yang merepresentasikan data buku yang terdapat dalam sebuah toko buku :

databuku.xml
<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications
      with XML.</description>
   </book>
   <book id="bk102">
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-12-16</publish_date>
      <description>A former architect battles corporate zombies,
      an evil sorceress, and her own childhood to become queen
      of the world.</description>
   </book>
   <book id="bk103">
      <author>Corets, Eva</author>
      <title>Maeve Ascendant</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-11-17</publish_date>
      <description>After the collapse of a nanotechnology
      society in England, the young survivors lay the
      foundation for a new society.</description>
   </book>
</catalog>



Dokumen XML di atas menyajikan 3 buah buku beserta keterangannya yang kesemuanya disajikan dalam bentuk obyek dengan tag seperti halnya HTML. Dalam setiap buku, terdapat 7 buah properties yaitu ID buku, author (pengarang), title, genre (jenis buku), price, publish_date dan description.

Selanjutnya adalah menuliskan script diatas dalam notepad seperti berikut :


Sebelum proses importing data, hal utama yang harus Anda lakukan terhadap data dari dokumen XML di atas adalah memparsing masing-masing obyek, atau membaca value dalam setiap obyeknya. Sebagai contoh, kita akan membaca data dari buku dengan id ‘bk101′. Dari proses parsing ini, kita harus bisa mendapatkan data keterangan tentang buku tersebut, yaitu authornya siapa, title nya apa dsb.

Bagaimana cara membaca value dari setiap obyek dalam dokumen XML? dalam PHP telah tersedia function untuk proses parsing XML ini. Function yang dimaksud adalah:
simplexml_load_file(nama file XML);
Oke, sekarang kita akan mencoba membuat script PHP untuk memparsing data buku dari dokumen XML databuku.xml di atas.
Tulis script php dalam notepad, dan simpan dengan nama Parsing.php, seperti berikut :


Setelah dokumen databuku.xml diparsing dengan function simplexml_load_file(), maka selanjutnya menampilkan data hasil parsingnya. Sebelum kita menampilkan data hasil parsing, kita lihat terlebih dahulu format XML nya dari data buku. Setiap data buku, ditandai dengan tag pembuka <book> dan ditutup dengan </book>. Sedangkan properti dari buku, seperti author, title dan sebagainya terdapat di dalam tag <book>…</book> tersebut.
Nah… oleh karena itu untuk menampilkan author dari buku, gunakan perintah :
$dataxml->book->author;
Sedangkan untuk menampilkan ID dari buku, gunakan perintah :
               $dataxml->book['id'];
karena ID buku merupakan atribut dari <book>…</book>
Untuk menampilkan semua data buku, kita menggunakan looping foreach() seperti di atas. Hasil dari script akan diperoleh tampilan seperti di bawah ini :


Cara memparsing setiap data buku kita sudah, sekarang bagaimana mengimportnya ke database MySQL.
Terlebih dahulu, kita siapkan tabel untuk menyimpan data bukunya. Berikut ini adalah contoh struktur tabelnya
CREATE TABLE `book` (
  `id` varchar(5),
  `author` varchar(30),
  `title` varchar(30),
  `genre` varchar(30),
  `price` float,
  `publish_date` date,
  `description` text,
  PRIMARY KEY(`id`)
)
 
 
 
Untuk proses import data, kita harus memodifikasi script di atas menjadi seperti di bawah ini.
<?php
 
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
 
$dataxml = simplexml_load_file('databuku.xml');
 
foreach($dataxml->book as $buku)
{
   $id = $buku['id'];
   $author = $buku->author;
   $title = addslashes($buku->title);
   $genre = $buku->genre;
   $price = $buku->price;
   $publish_date = $buku->publish_date;
   $description = $buku->description;
   $query = "INSERT INTO book
                 VALUES ('$id', '$author', '$title', '$genre', '$price', '$publish_date', '$description') ";
   mysql_query($query);
}
 
?>



Karena pada dasarnya konsep import data adalah proses menyisipkan data ke dalam tabel, maka digunakanlah query SQL “INSERT INTO” pada script di atas.
Hasil dari proses import dengan script PHP di atas tampak pada tampilan tabel berikut ini :







Comments
0 Comments

No comments:

Post a Comment