Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : XML Parser Functions : xml_set_unparsed_entity_decl_handler

xml_set_unparsed_entity_decl_handler

Set up unparsed entity declaration handler (PHP 4, PHP 5)
bool xml_set_unparsed_entity_decl_handler ( resource parser, callback handler )

Sets the unparsed entity declaration handler function for the XML parser parser.

The handler will be called if the XML parser encounters an external entity declaration with an NDATA declaration, like the following:

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
       NDATA <parameter>notationName</parameter>

See » section 4.2.2 of the XML 1.0 spec for the definition of notation declared external entities.

Parameters

parser
handler

handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept six parameters:

parser
The first parameter, parser, is a reference to the XML parser calling the handler.
entity_name
The name of the entity that is about to be defined.
base
This is the base for resolving the system identifier (systemId) of the external entity.Currently this parameter will always be set to an empty string.
system_id
System identifier for the external entity.
public_id
Public identifier for the external entity.
notation_name
Name of the notation of this entity (see xml_set_notation_decl_handler()).

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

Note:

Instead of a function name, an array containing an object reference and a method name can also be supplied.

Return Values

Returns TRUE on success or FALSE on failure.

Examples ( Source code ) » xml_set_unparsed_entity_decl_handler

<?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");
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);

?>

Change Language


Follow Navioo On Twitter
utf8_decode
utf8_encode
xml_error_string
xml_get_current_byte_index
xml_get_current_column_number
xml_get_current_line_number
xml_get_error_code
xml_parse_into_struct
xml_parse
xml_parser_create_ns
xml_parser_create
xml_parser_free
xml_parser_get_option
xml_parser_set_option
xml_set_character_data_handler
xml_set_default_handler
xml_set_element_handler
xml_set_end_namespace_decl_handler
xml_set_external_entity_ref_handler
xml_set_notation_decl_handler
xml_set_object
xml_set_processing_instruction_handler
xml_set_start_namespace_decl_handler
xml_set_unparsed_entity_decl_handler
eXTReMe Tracker