Introduction
In this article I describe the PHP XML Parser functions xml_set_end_namespace_decl_handler, xml_set_start_namespace_decl_handler, xml_set_processing_instruction_handler and xml_set_unparsed_entity_decl_handler. To learn some other PHP XML Parser functions go to:
-  XML Parser Function in PHP: Part 1
-  XML Parser Function in PHP: Part 2
-  XML Parser Function in PHP: Part 3
- XML Parser Function in PHP: Part  4
PHP xml_set_end_namespace_decl_handler() Function
The PHP XML Parser "xml_set_end_namespace_decl_handler" function is used to set up end namespace declaration handler and this function returns true on success or false on failure.
Syntax 
| xml_set_end_namespace_decl_handler(parser,handler) | 
Parameters of the xml_set_end_namespace_decl_handler function
The parameters of the function are:
| Parameter | Description | 
| parser | It specifies the XML parser to use. | 
| handler | It specifies a function that must exist when the xml_parser() is called for parser and this "handler" parameter must have two parameters. 
Parser: It specifies a variable containing the XML parser calling the handler.prefix: The prefix is a string used to reference the namespace within an XML object. | 
PHP xml_set_start_namespace_decl_handler() function
The PHP XML Parser "xml_set_start_namespace_decl_handler" function sets up a start namespace declaration handler and this function returns true on success or false on failure.
Syntax 
| xml_set_start_namespace_decl_handler(parser,handler) | 
Parameters of the xml_set_start_namespace_decl_handler function
The parameters of the function are:
| Parameter | Description | 
| parser | It specifies the XML parser to use. | 
| handler | It specifies a function that must exist when xml_parser() is called for parser and this "handler" parameter must have three parameters. 
Parser: It specifies a variable containing the XML parser calling the handler.prefix: The prefix is a string used to reference the namespace within an XML object.uri: It specifies the Uniform Resource Identifier of the namespace. | 
PHP xml_set_processing_instruction_handler () function
The PHP XML Parser "xml_set_processing_instruction_handler" function sets up a Processing Instruction handler and this function returns true on success or false on failure.
Syntax 
| xml_set_processing_instruction_handler(parser,handler) | 
Parameters of the xml_set_processing_instruction_handler function
The parameters of the function are:
| Parameter | Description | 
| parser | It specifies the XML parser to use. | 
| handler | It specifies a function to be when the parser finds a notation declaration and this "handler" parameter must have three parameters. 
Parser: It specifies a variable containing the XML parser calling the handler.target: It specifies a variable containing the Processing Instruction target.data: It specifies a variable containing the Processing Instruction data. | 
Example
An example of the function is:
XML File
![xml-file.jpg]()
PHP code
<?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");
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);
?> 
Output
![xml-set-processing-instruction--handler-function-in-php.jpg]() 
 
PHP xml_set_unparsed_entity_decl_handler() Function
The PHP XML Parser "xml_set_unparsed_entity_decl_handler" function sets up an unparsed entity declaration handler and this function returns true on success or false on failure.
Syntax 
| xml_set_unparsed_entity_decl_handler(parser,handler) | 
Parameters of the xml_set_unparsed_entity_decl_handler function
The parameters of the function are:
| Parameter | Description | 
| parser | It specifies the XML parser to use. | 
| handler | It specifies a function to be when the parser finds a notation declaration and this "handler" parameter must have six parameters. 
Parser: It specifies a variable containing the XML parser calling the handler.name: It specifies a variable containing the name of the entity.base: It specifies a variable containing the base for resolving the system identifier.system_id: It specifies a variable containing the system identifier for the entity.public_id: It specifies a variable containing the notation identifying the data type of the entity.notation: It specifies a variable containing the notation identifying the data type of the entity. | 
Example
An example of the function is:
 
<html>
<body>
<h3 style="color: red;">xml_set_unparsed_entity_decl_handler() function example in PHP</h3>
 <?php
$xml_parser=xml_parser_create();
function char($xml_parser,$data)
{
echo $data;
}
function unparsed_ent_handler($xml_parser,$entname,$base,$sysID,$pubID,$notname)
{
print "$entname<br />";
print "$sysID<br />";
print "$pubID<br />";
print "$notname<br />";
}
xml_set_character_data_handler($xml_parser,"char");
xml_set_unparsed_entity_decl_handler($xml_parser,"unparsed_ent_handler");
$fp=fopen("test.xml","r");
while ($data=fread($fp,4096))
{
xml_parse($xml_parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
xml_parser_free($xml_parser);
?>
</body>
</html>
Output
![xml-set-unparsed-entity-decl-handler-function-in-php.jpg]()