PHP Tutorial - PHP xml _set _processing _instruction _handler () Function






The xml_set_processing_instruction_handler() function specifies a function to be called when the parser finds a processing instruction in the XML document.

A processing instruction is enclosed in <? and ?> delimiters and contains a a target followed by data.

Syntax

PHP xml_set_processing_instruction_handler() Function has the following syntax.

xml_set_processing_instruction_handler(parser,handler)

Parameter

ParameterIs RequiredDescription
parserRequired.XML parser to use
handlerRequired.A function to be when the parser finds a notation declaration

The Function specified by the "handler" parameter must have three parameters:

Parameteris RequiredDescription
parserRequired.A variable containing the XML parser calling the handler
targetRequired.A variable containing processing instruction target
dataRequired.A variable containing processing instruction data




Return

This function returns TRUE on success, or FALSE on failure.

Example

XML File

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="default.xsl" type="text/xml"?>
<Book>
    <name>PHP</name>
    <name>Java</name>
</Book>

Specify a function to be called when the parser finds a processing instruction in the XML document


<?php //from w  w  w . ja  v a2 s.  c o  m

$parser=xml_parser_create();

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

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

xml_set_character_data_handler($parser,"char");
xml_set_processing_instruction_handler($parser, "pi_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);
?>