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



PHP : Function Reference : XML Parser Functions : xml_set_default_handler

xml_set_default_handler

Set up default handler (PHP 4, PHP 5)
bool xml_set_default_handler ( resource parser, callback handler )

Examples ( Source code ) » xml_set_default_handler

XML File

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Mike</to>
<from>Tom</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

PHP Code

<?php

$parser
=xml_parser_create();

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

xml_set_default_handler($parser,"default");
$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);
?>

The output of the code above will be:

Mike Tom Reminder Don't forget me this weekend!

Related Examples ( Source code ) » xml_set_default_handler


Code Examples / Notes » xml_set_default_handler

phillip

it seems to me that in PHP5 the function defined as default-handler (using xml_set_default_handler()) doesen't get passed the cdata anymore:
i.e.:
xml_set_element_handler($this->parser, 'parseSTART', 'parseEND');
xml_set_default_handler($this->parser, 'parseDEFAULT');
function parseSTART() { ... }
function parseEND() { ... }
function parseDEFAULT() { ... }
under PHP5, parseDEFAULT will NOT get passed any cdata, but unter PHP4 it will. at least that's my take on the strange stuff (not) happening after migrating to PHP5.
my solution was to add a xml_set_character_data_handler($parser, 'parseDEFAULT'). it worked for me.


anoril

I have the same issue using two installation of PHP5: on accepts to use the default handler while the other only uses the character_data one.
Maybe a configuration problem...
;) Nonor.


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