rendered paste bodyfunction openElement($parser, $element, $attributes) { foreach ($attributes as $key => $value) $attr .= $key." : ".$value." - "; $added .= "-> openElement element: $element, attribute: $attributes ($attr) <br/>"; } function closeElement($parser, $element) { $added .= "-> closeElement element is: $element<br/>"; } function characterData($parser, $data) { $added .= "-> characterData data is: [$data]<br/>"; } $parser = xml_parser_create(); $document = $backup; xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false); xml_set_element_handler($parser, "openElement", "closeElement"); xml_set_character_data_handler($parser, "characterData"); if (!xml_parse($parser, $document)) { echo "<pre>".$document."</pre>";; 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);