Home » PHP » PHP XML : Parser SimpleXML – Instalasi dan Contohnya

PHP XML : Parser SimpleXML – Instalasi dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

SimpleXML adalah ekstensi PHP yang memungkinkan kita memanipulasi dan mendapatkan data XML dengan mudah.

Parser SimpleXML

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.

Instalasi

Dari PHP 5, fungsi SimpleXML merupakan bagian dari inti PHP. Tidak diperlukan instalasi untuk menggunakan fungsi-fungsi ini.

PHP SimpleXML – Baca Dari String

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

PHP SimpleXML – Baca Dari File

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! )

FunctionDescription
__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

PHP SimpleXML Fungsi Iterasi

FunctionDescription
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

You may also like