Cara menggunakan generate xml php

Setelah menulis artikel membuat dan parsing JSON dengan menggunakan PHP dan MySQL serta membuat file csv serta bagaimana cara mem-parsing-nya dengan PHP dan MySQL. Pada kesempatan ini saya akan menulis artikel mengenai pembuatan dan parsing dokumen XML, juga dengan menggunakan PHP dan MySQL.

XML (eXtensible Markup Language) adalah format umum yang digunakan untuk membuat bahasa markup baru. XML mendefinisikan seperangkat aturan untuk dokumen yang dikodekan secara elektronik. Bahasa markup digunakan untuk memisahkan konten dari struktur dokumen elektronik dengan jelas.

Keuntungan XML :

  • Tag tidak terbatas dan memungkinkan banyak fleksibilitas.
  • Dengan XML Anda pada dasarnya menulis bahasa markup Anda sendiri yang memungkinkan Anda membuat bahasa sesuai dengan tugas tertentu.
  • Sehubungan dengan HTML, XML mendukung pemisahan GUI dari data / konten dengan menggunakan style sheet khusus.

Kekurangan XML :

  • XML ​​tidak memiliki sistem untuk pemrosesan aplikasi sehingga dokumen XML harus dikonversi, ke HTML misalnya.
  • Fleksibilitas yang diberikannya juga bisa menjadi kerugian karena ada ketidaksepakatan di antara tag atau objek dan ini bisa menambahkan kendala yang menyulitkan pembuatan file.
  • Isu terkait bisa muncul jika sebuah organziasi memiliki ratusan fungsi untuk satu set dokumen yang perlu dijelaskan dengan tag.
  • Terlalu banyak tag untuk struktur dokumen tunggal dapat mengganggu kemampuan XML untuk memproses informasi.

MEMBUAT DOKUMEN XML DENGAN PHP DAN MYSQL

Karena tutorial ini merupakan kelanjutan dari tutorial sebelumnya, maka database dan table yang digunakan adalah sama.

Membuat database baru yaitu : db_belajar. Kemudian buat table dengan perintah SQL:

CREATE TABLE IF NOT EXISTS `tb_anggota` ( `anggota_id` int(5) NOT NULL AUTO_INCREMENT, `nama` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `alamat` varchar(50) NOT NULL, `umur` int(2) NOT NULL, PRIMARY KEY (`anggota_id`) ) ENGINE=INNODB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Kemudian, masukkan beberapa record :

INSERT INTO `tb_anggota` (`nama`, `email`, `alamat`, `umur`) VALUES ('Wayan', 'wayan@email.com', 'Badung', 21), ('Made', 'made@email.com', 'Gianyar', 19), ('Nyoman', 'nyoman@email.com', 'Klungkung', 30), ('Ketut', 'ketut@email.com', 'Tabanan', 23), ('Gede', 'gede@email.com', 'Karangasem', 27);

Buat file create_xml.php untuk, men-generate dokumen xml dari record yang ada di table tb_anggota.

'); //menampilkan data dari database, table tb_anggota $sql = "select * from tb_anggota"; $result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection)); //membuat array while ($row = mysqli_fetch_assoc($result)) { $track = $xml->addChild('anggota'); $track->addChild('nama', $row['nama']); $track->addChild('email', $row['email']); $track->addChild('alamat', $row['alamat']); $track->addChild('umur', $row['umur']); } print($xml->asXML()); //tutup koneksi ke database mysqli_close($connection); ?>

PARSING DOKUMEN XML DENGAN PHP DAN MENYIMPANNYA DI DATABASE MYSQL

Misalnya kita memiliki dokumen XML dengan nama dataanggota.xml, seperti di bawah ini :

<?xml version="1.0"?> <xml> <anggota> <nama>Toni</nama> <email>toni@email.com</email> <alamat>Bandung</alamat> <umur>35</umur> </anggota> <anggota> <nama>Asep</nama> <email>asep@email.com</email> <alamat>Bandung</alamat> <umur>18</umur> </anggota> <anggota> <nama>Ucok</nama> <email>ucok@email.com</email> <alamat>Medan</alamat> <umur>23</umur> </anggota> </xml>

Buat file parsing_xml.php untuk memparsing data pada dokumen xml tersebut sekaligus menyimpan datanya ke dalam database.

'; foreach ($file as $key => $value) { echo $i . "
"; echo "nama : " . $value->nama . "
"; echo "email : " . $value->email . "
"; echo "alamat : " . $value->alamat . "
"; echo "umur : " . $value->umur . "

"; $sql = "INSERT into tb_anggota(nama,email,alamat,umur) VALUES('" . $value->nama . "','" . $value->email . "','" . $value->alamat . "','" . $value->umur . "')"; mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection)); $i++; } //tutup koneksi ke database mysqli_close($connection); ?>

Coba buka table tb_anggota untuk memastikan data sudah disimpan dengan benar. Anda bisa mencoba tag bersarang pada dokumen XML, karena tutorial ini masih sederhana 🙂

It’s a cross platform and language neutral standard that defines how to access and manipulate data in;

  • HTML
  • XHTML
  • XML

DOM XML is used to access and manipulate XML documents. It views the XML document as a tree-structure.

XML Parsers

An XML parser is a program that translates the XML document into an XML Document Object Model (DOM) Object.

The XML DOM Object can then be manipulated using JavaScript, Python, and PHP etc.

The keyword CDATA which is the acronym for (Unparsed) Character Data is used to ignore special characters such as “<,>” when parsing an XML document.

Why use XML?

  • Web services such as SOAP and REST use XML format to exchange information. Learning what XML is and how it works will get you competitive advantage as a developer since modern applications make heavy use of web services.
  • XML documents can be used to store configuration settings of an application
  • It allows you to create your own custom tags which make it more flexible.

XML Document example

Let’s suppose that you are developing an application that gets data from a web service in XML format.

Below is the sample of how the XML document looks like.

<?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>

HERE,

  • “<?xml version=”1.0″ encoding=”utf-8″?>” specifies the xml version to be used and encoding
  • “<employees status = “ok”>” is the root element.
  • “<record…>…</record>” are the child elements of administration and sales respectively.

How to Read XML using PHP

Let’s now write the code that will read the employees XML document and display the results in a web browser. 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>'; } ?>

HERE,

  • “$xml = simplexml_load_file(’employees.xml’);” uses the simplexml_load_file function to load the file name employees.xml and assign the contents to the array variable $xml.
  • “$list = $xml->record;” gets the contents of the record node.
  • “for ($i = 0; $i < count(…)…” is the for loop that reads the numeric array and outputs the results
  • “$list[$i]->attributes()->man_no;” reads the man_no attribute of the element
  • “$list[$i]->name;” reads the value of the name child element
  • “$list[$i]->position;” reads the value of the position child element

Testing our application

Assuming you saved the file index.php in phptus/xml folder, browse to the URL //localhost/phptuts/xml/index.php

How to Create an XML document using PHP

We will now look at how to create an XML document using PHP.

We will use the example above in the DOM tree diagram.

The following code uses the PHP built in class DOMDocument to create an XML document.

<?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', 'The Campaign'); $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"; ?>

HERE,

  • “$dom = new DOMDocument();” creates an instance of DOMDocument class.
  • “$dom->encoding = ‘utf-8’;” sets the document encoding to utf-8
  • “$dom->xmlVersion = ‘1.0’;” specifies the version number 1.0
  • “$dom->formatOutput = true;” ensures that the output is well formatted
  • “$root = $dom->createElement(‘Movies’);” creates the root node named Movies
  • “$attr_movie_id = new DOMAttr(‘movie_id’, ‘5467’);” defines the movie id attribute of Movies node
  • “$child_node_element_name = $dom->createElement(‘ElementName’, ‘ElementValue’)” creates the child node of Movies node. ElementName specifies the name of the element e.g. Title. ElementValue sets the child node value e.g. The Campaign.
  • “$root->appendChild($movie_node);” appends the movie_node elements to the root node Movies
  • “$dom->appendChild($root);” appends the root node to the XML document.
  • “$dom->save($xml_file_name);” saves the XML file in the root directory of the web server.
  • “echo ‘<a href= “‘.$xml_file_name.'”>’ . $xml_file_name . ‘</a> has been successfully created’;” creates the link to the XML file.

Testing our application

Assuming you saved the file create_movies_list in phptuts/xml folder, browse to the URL //localhost/phptuts/xml/create_movies_list.php

Postingan terbaru

LIHAT SEMUA