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

Fungsi Parser XML xml_set_processing_instruction_handler() Pada PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Definisi dan Penggunaan

Fungsi xml_set_processing_instruction_handler() menetapkan fungsi yang akan dipanggil ketika parser menemukan instruksi pemrosesan (PI) dalam dokumen XML.

Sebuah PI diapit oleh <? dan ?> berisi target yang diikuti oleh data.

Contoh: Dalam hal ini PI mengaitkan style sheet dengan dokumen XML:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="default.xsl" type="text/xml"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Jangan lupa janji temu kita minggu ini!</body>
</note>

Syntax

xml_set_processing_instruction_handler(parserhandler)

Nilai Parameter

ParameterDeskripsi
parserRequired. Menentukan parser XML yang akan digunakan
handlerRequired. Menentukan fungsi untuk digunakan sebagai pengendali kejadian. Fungsi tersebut harus menerima tiga parameter:

$parser – Variabel yang berisi parser XML yang memanggil handler
$target – Variabel yang berisi target PI
$data – Variabel yang berisi data PI

Detail Teknis

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

Contoh
Buat parser XML, setel handler data karakter, setel handler PI dan parse dokumen XML (note_pi.xml):

<?php
$parser=xml_parser_create();

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

function pi_handler($parser, $target, $data) {
  echo "Target: $target<br />";
  echo "Data: $data<br />";
}

xml_set_character_data_handler($parser,"char");
// Set up PI handler
xml_set_processing_instruction_handler($parser, "pi_handler");
$fp=fopen("note_pi.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);
?>
  /* Output :
Target: xml-stylesheet
Data: href="default.xsl" type="text/xml"
Tove Jani Reminder Jangan lupa janji temu kita minggu ini!

You may also like