By.
AlgoritmaNews -
XML ( Extendsible Markup Language) adalah salah satu bahasa yang
dibuat untuk dapat melakukan pertukaran data dari suatu aplikasi ke
aplikasi lain. Kenapa kita mesti mempelajari XML, karena menurut saya
XML banyak sekali digunakan pada berbagai aplikasi salah satunya Android
yang sekarang-sekarang ini lagi booming. Android sendiri paling banyak
dibuat dengan bantuan XML dan Java.
Untuk mempelajari dasar-dasar XML, teman teman bisa baca-baca pada artikel ini :
- http://www.w3schools.com/xml/
- http://www.xml.com/pub/a/98/10/guide0.html
- http://www.w3.org/XML/
XML tidak bisa lepas dari parsing, mengkonversi dari atau ke XML
adalah hal yang paling sering dilakukan. Berikut ini saya akan mencoba
mencoba mempraktikan bagaimana melakukan parsing XML dengan PHP.
Kalau teman-teman membaca manual PHP, ada banyak class yang memudahkan kita melakukan parsing XML salah satunya adalah
SimpleXML.
Awal terlebih dahulu adalah pengecekan apakah class SimpleXML telah
tersedia di versi PHP kita atau belum. Karena SimpleXML ini support pada
PHP versi 5.
Sekarang coba kita ambil salah satu contoh file xml dari alamat http://www.w3schools.com/xml/yang plant_catalog.xml.
Sekarang kita buat satu file untuk mencoba mengambil data pada file
plant_catalog.xml dengan nama xml_php.php (satukan dalam folder file
plant_catalog.xml). Pada xml_php.php kita tulis code seperti dibawah ini
:
02 | # pengecekan apakah ada file *.xml itu ? |
03 | if ( file_exists ( 'plant_catalog.xml' )){ |
06 | $xml = file_get_contents ( 'plant_catalog.xml' ); |
08 | # pembuatan object SimpleXMLElement |
09 | $e_xml = new SimpleXMLElement( $xml ); |
11 | # mengambil name dari element |
12 | echo "Element root : " . $e_xml ->getName() . "<br />" ; |
13 | echo "Element children dari root : " . $e_xml ->children()->getName() . "<br />" ; |
15 | echo "Element children dari " . $e_xml ->children()->getName() . " : <br />" ; |
16 | # loping get name dari child yg banyak |
17 | foreach ( $e_xml ->children()->children() as $child ){ |
18 | echo $child ->getName(). "<br />" ; |
21 | echo "============================================= <br />" ; |
23 | # mengambil isi dari element |
24 | echo "Common : " . $e_xml ->PLANT[0]->COMMON . "<br />" ; |
26 | echo "Botanical : " . $e_xml ->PLANT[0]->BOTANICAL . "<br />" ; |
28 | echo "============================================= <br />" ; |
30 | # hitung jumlah element pada PLANT |
31 | $jml_plant = $e_xml ->PLANT-> count (); |
32 | echo "Jumlah element " . $e_xml ->children()->getName() . " : " . $jml_plant . "<br />" ; |
34 | # looping untuk mendapatkan data keseluruhan |
35 | for ( $i =0; $i < $jml_plant ; $i ++){ |
37 | # ambil hanya element COMMON |
38 | echo "#" . $i . " Common dari " . $e_xml ->children()->getName() . " : " . $e_xml ->PLANT[ $i ]->COMMON . "<br />" ; |
44 | echo "file tidak ditemukan" ; |
Untuk melihatnya
Disini
Tapi maaf karena fungsi count() hanya
support pada php versi 5.3 sedangkan
hosting saya menggunakan versi PHP 5.2 jadi terdapat error. Lebih
jelas, teman-teman bisa langsung coba aja di localhost masing-masing.
Pada kode tersebut, sudah saya berikan komentar sehingga memudahkan teman-teman mempelajarinya.
Selain dengan SimpleXML, kita juga bisa memanfaatkan fasilitas dari jquery.Berikut ini adalah code parsing XML dengan jquery :
03 | <script src= "https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script> |
04 | <script type= 'text/javascript' > |
06 | $(document).ready( function () |
11 | url: "plant_catalog.xml" , |
13 | beforeSend: function (){ |
14 | $( "#image" ).html( "<img src='ajax-loader.gif'" ); |
16 | success: function (xml) { |
17 | $(xml).find( "PLANT" ).each( function (){ |
20 | var data_common = $( this ).find( "COMMON" ).text(); |
21 | $( "#v_common ul" ).append( "<li>" + data_common + "</li>" ); |
23 | var data_botanical = $( this ).find( "BOTANICAL" ).text(); |
24 | $( "#v_botanical ul" ).append( "<li>" + data_botanical + "</li>" ); |
36 | <span id= 'image' ></span><br /> |
45 | <div id= 'v_botanical' > |
Demonya bisa dilihat :
Disini
Sampai disini semoga ada tambahan ilmu lagi tentang PHP, Jquery n XML
Refrensi
0 Comments:
Post a Comment