/* Currently (Feb 10, 2005) CVS HEAD fails with the following message: Fatal error: Invalid opcode 137/1/8. in /home/hartmut/projects/php/dev/head/ext/xml/tests/bug30266.php on line 22 */ class XML_Parser { public $dummy = "a"; function parse($data) { $parser = xml_parser_create(); xml_set_object($parser, $this); xml_set_element_handler($parser, 'startHandler', 'endHandler'); xml_parse($parser, $data, true); xml_parser_free($parser); } function startHandler($XmlParser, $tag, $attr) { $this->dummy = "b"; throw new Exception("ex"); } function endHandler($XmlParser, $tag) { } } $p1 = new Xml_Parser(); try { $p1->parse('<tag1><tag2></tag2></tag1>'); } catch (Exception $e) { echo "OK\n"; }
echo "notation_decl_handler called\n"; echo "...Name=" . $name . "\n"; echo "...Base=" . $base . "\n"; echo "...System ID=" . $system_ID . "\n"; echo "...Public ID=" . $public_ID . "\n"; } function parse($data) { $parser = xml_parser_create(); xml_set_object($parser, $this); xml_set_notation_decl_handler($parser, "notation_decl_handler"); xml_set_unparsed_entity_decl_handler($parser, "unparsed_entity_decl_handler"); xml_parse($parser, $data, true); xml_parser_free($parser); } } $xml = <<<HERE <?xml version="1.0"?> <!DOCTYPE dates [ <!NOTATION USDATE SYSTEM "http://www.schema.net/usdate.not"> <!NOTATION AUSDATE SYSTEM "http://www.schema.net/ausdate.not"> <!NOTATION ISODATE SYSTEM "http://www.schema.net/isodate.not"> <!ENTITY testUS SYSTEM "test_usdate.xml" NDATA USDATE> \t<!ENTITY testAUS SYSTEM "test_ausdate.xml" NDATA AUSDATE> \t<!ENTITY testISO SYSTEM "test_isodate_xml" NDATA ISODATE>]> ]> HERE; echo "Simple test of xml_set_notation_decl_handler(() function\n"; $p1 = new Xml_Parser(); $p1->parse($xml); echo "Done\n";