Konsepnya sederhana, menciptakan sebuah file xml dengan struktur mirip tabel di database,
kemudian diload dan dibaca oleh php. Hasil pembacaan ini kemudian diparsing dengan tool xml parser nya php.
Buat sebuah file xml dan beri nama data.xml
kemudian diload dan dibaca oleh php. Hasil pembacaan ini kemudian diparsing dengan tool xml parser nya php.
Buat sebuah file xml dan beri nama data.xml
<?xml version="1.0" encoding="UTF-8"?>
<students>
<record>
<name>Agus Hermanto</name>
<sex>Male</sex>
<dob>1980-01-01</dob>
</record>
<record>
<name>Budi Kusuma</name>
<sex>Male</sex>
<dob>1980-01-02</dob>
</record>
<record>
<name>Cinta Laura</name>
<sex>Female</sex>
<dob>1980-01-03</dob>
</record>
</students>
Kemudian, buat file php yang digunakan untuk membaca file data.xml ini
$parser = xml_parser_create();
// konfigurasi parser
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
// buka dan baca filenya
$fp = fopen("data.xml", "r");
$xml = $fread($fp, filesize("data.xml"));
// convert hasil pembacaan ke raw array (struct)
xml_parse_into_struct($parser, $xml, $result, $tags);
xml_parser_free($parser);
// olah array struct
$records = array();
foreach($tags as $key => $ranges) {
if ($key == "record") {
for ($i = 0; $i < count($ranges); $i+=2) {
$offset = $ranges[$i] + 1;
$len = $ranges[$i + 1] - $offset;
$vals = array_slice($result, $offset, $len);
$record = array();
for ($j = 0; $j < count($vals); $j++) {
$record[$vals[$j]["tag"]] = $vals[$j]["value"];
}
$records[] = (object) $record;
}
}
}
// test
print_r($records
Tidak ada komentar:
Posting Komentar