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

Fungsi Parser XML xml_set_unparsed_entity_decl_handler() Pada PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Definisi dan Penggunaan

Fungsi xml_set_unparsed_entity_decl_handler() digunakan untuk menentukan fungsi yang akan dipanggil ketika parser merupakan entitas yang tidak diurai dalam dokumen XML.

Catatan: Parameter handler juga bisa berupa array yang berisi referensi objek dan nama metode.

Syntax

xml_set_unparsed_entity_decl_handler(parserhandler)

Nilai Parameter

ParameterDeskripsi
parserRequired. Menentukan parser XML yang akan digunakan
handlerRequired.Menentukan fungsi yang akan dipanggil jika parser XML menemukan deklarasi entitas eksternal dengan deklarasi NDATA. Fungsi tersebut harus menerima enam parameter:

$parser – Variabel yang berisi parser XML yang memanggil handler
$entity_name – Variabel yang berisi nama entitas
$base – Basis untuk menyelesaikan pengidentifikasi sistem (system_id) dari entitas eksternal. Saat ini, ini selalu berupa string kosong
$system_id – Pengidentifikasi sistem dari entitas eksternal
$public_id – Pengidentifikasi publik dari entitas eksternal
$notation_name – Nama notasi entitas ini

Detail Teknis

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

Contoh
Buat parser XML, setel handler data karakter, setel handler deklarasi entitas yang tidak diuraikan dan parsing dokumen XML:

<?php
$parser=xml_parser_create();

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

function unparsed_ent_handler($parser,$entname,$base,$sysID,$pubID,$notname) {
  print "$entname<br>";
  print "$sysID<br>";
  print "$pubID<br>";
  print "$notname<br>";
}

xml_set_character_data_handler($parser,"char");
// Siapkan penangan deklarasi entitas yang tidak diurai
xml_set_unparsed_entity_decl_handler($parser,"unparsed_ent_handler");

$fp=fopen("test.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);
?>

You may also like