SimpleXML adalah ekstensi PHP yang memungkinkan kita memanipulasi dan mendapatkan data XML dengan mudah.
Section Artikel
SimpleXML adalah pengurai berbasis pohon( tree-based parser.).
SimpleXML menyediakan cara mudah untuk mendapatkan nama elemen, atribut, dan konten tekstual jika mengetahui struktur atau tata letak dokumen XML.
SimpleXML mengubah dokumen XML menjadi struktur data yang dapat di iterasikan seperti kumpulan array dan objek.
Dibandingkan dengan DOM atau parser Expat, SimpleXML membutuhkan lebih sedikit baris kode untuk membaca data teks dari suatu elemen.
Dari PHP 5, fungsi SimpleXML merupakan bagian dari inti PHP. Tidak diperlukan instalasi untuk menggunakan fungsi-fungsi ini.
Fungsi PHP simplexml_load_string()
digunakan untuk membaca data XML dari sebuah string.
Asumsikan kita memiliki variabel yang berisi data XML, seperti ini:
$myXMLData = "<?xml version='1.0' encoding='UTF-8'?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>";
Contoh di bawah ini menunjukkan cara menggunakan fungsi simplexml_load_string()
untuk membaca data XML dari string:
Contoh:
<?php $myXMLData = "<?xml version='1.0' encoding='UTF-8'?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Jangan lupa bertemu aku akhir pekan ini!</body> </note>"; $xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object"); print_r($xml); ?>
Output dari kode di atas adalah:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Jangan lupa bertemu aku akhir pekan ini! )
Tip Penanganan Kesalahan: Gunakan fungsionalitas libxml untuk mengambil semua kesalahan XML saat memuat dokumen dan kemudian mengulangi kesalahan tersebut. Contoh berikut mencoba memuat string XML yang rusak:
Contoh :
<?php libxml_use_internal_errors(true); $myXMLData = "<?xml version='1.0' encoding='UTF-8'?> <document> <user>John Doe</wronguser> <email>john@example.com</wrongemail> </document>"; $xml = simplexml_load_string($myXMLData); if ($xml === false) { echo "Failed loading XML: "; foreach(libxml_get_errors() as $error) { echo "<br>", $error->message; } } else { print_r($xml); } ?>
Output dari kode di atas adalah:
Failed loading XML:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail
Fungsi PHP simplexml_load_file ()
digunakan untuk membaca data XML dari file.
Asumsikan kita memiliki file XML bernama “note.xml”, yang terlihat seperti ini:
<?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
Contoh di bawah ini menunjukkan cara menggunakan fungsi simplexml_load_file()
untuk membaca data XML dari file:
Contoh :
<?php $xml=simplexml_load_file("note.xml") or die("Error: Cannot create object"); print_r($xml); ?>
Output dari kode di atas adalah :
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
Function | Description |
---|---|
__construct() | Creates a new SimpleXMLElement object |
__toString() | Returns the string content of an element |
addAttribute() | Appends an attribute to the SimpleXML element |
addChild() | Appends a child element the SimpleXML element |
asXML() | Returns a well-formed XML string (XML version 1.0) from a SimpleXML object |
attributes() | Returns the attributes/values of an element |
children() | Returns the children of a specified node |
count() | Counts the children of a specified node |
getDocNamespaces() | Returns the namespaces declared in document |
getName() | Returns the name of an element |
getNamespaces() | Returns the namespaces used in document |
registerXPathNamespace() | Creates a namespace context for the next XPath query |
saveXML() | Alias of asXML() |
simplexml_import_dom() | Returns a SimpleXMLElement object from a DOM node |
simplexml_load_file() | Converts an XML document to an object |
simplexml_load_string() | Converts an XML string to an object |
xpath() | Runs an XPath query on XML data |
Function | Description |
---|---|
current() | Returns the current element |
getChildren() | Returns the child elements of the current element |
hasChildren() | Checks whether the current element has children |
key() | Returns the XML tag name of the current element |
next() | Moves to the next element |
rewind() | Rewinds to the first element |
valid() | Checks whether the current element is valid |