Home » PHP » Fungsi Parser XML xml_parse() Pada PHP

Fungsi Parser XML xml_parse() Pada PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Definisi dan Penggunaan

Fungsi xml_parse() digunakan untuk dapat mengurai dokumen XML.

Tip: Untuk membuat parser XML, gunakan fungsi xml_parser_create().

Syntax

xml_parse(parserdataend)

Nilai Parameter

ParameterDeskripsi
parserRequired. Menentukan parser XML yang akan digunakan
dataRequired. Menentukan data untuk diurai
endOptional. Jika disetel ke TRUE, data di parameter data adalah bagian terakhir dari data yang dikirim dalam parse ini.
Catatan: Kesalahan entitas dilaporkan di akhir parse – dan hanya akan ditampilkan jika parameter akhir adalah BENAR

Detail Teknis

Return Value:TRUE jika sukses. FALSE jika gagal
PHP Version:4.0+

Contoh 1
Buat pengurai XML dan parsing dokumen XML (note.xml):

<?php
// Buat XML parser
$parser=xml_parser_create();

function char($parser,$data) {
echo $data;
}

xml_set_character_data_handler($parser,"char");
$fp=fopen("note.xml","r");

while ($data=fread($fp,4096)) {
  // Parse XML data
  xml_parse($parser,$data,feof($fp)) or
  die (sprintf("XML Error: %s at line %d",
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
}

xml_parser_free($parser);
fclose($fp);
?>
  /* Output :
Tove Jani Reminder Don't forget me this weekend!

Contoh 2
Menggunakan file XML yang sama tetapi menampilkan data XML dengan cara lain:

<?php
$parser=xml_parser_create();
function start($parser,$element_name,$element_attrs) {
switch($element_name) {
case "NOTE":
echo "NOTE<br>";
break;
case "TO":
echo "To: ";
break;
case "FROM":
echo "From: ";
break;
case "HEADING":
echo "Heading: ";
break;
case "BODY":
echo "Message: ";
}
}

function stop($parser,$element_name) {
echo "<br>";
}

function char($parser,$data) {
echo $data;
}

xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("note.xml","r");

while ($data=fread($fp,4096)) {
xml_parse($parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}

xml_parser_free($parser);
fclose($fp);
?>
  /* Output :
NOTE
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

You may also like