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
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
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