parsing multiple xml documents

From: Date: Sat, 24 Feb 2001 19:58:13 +0000
Subject: parsing multiple xml documents
Groups: php.general 
Request: Send a blank email to php-general+get-41506@lists.php.net to get a copy of this message
Hi Folks: I just wrote a basic XML parser using the parse_xml() function set. Does what I want on the first document. But, if I try to run a second document through, it chokes saying "junk after document element." All of the files are valid and parse okay if I just send one file through. Also, the program runs fine if I redeclare the parser before parsing each file. While this works, having to redeclare the parser each time seems far from efficient. So, is there a better way to handle this, please? Sample code is below if you're interested. Thanks, --Dan <?php # Declare Parser Once. # Only works for first file. # NOTE: 'StartHandler', 'EndHandler' and 'CharacterHandler' # functions left out for clarity. $Parser = xml_parser_create('UTF-8'); xml_set_element_handler($Parser, 'StartHandler', 'EndHandler'); xml_set_character_data_handler($Parser, 'CharacterHandler'); $DirHandle = opendir("./StartTest"); while ( $FileName = readdir($DirHandle) ) { if ( ereg("^file.[0-9]{5}$", "$FileName") ) { $Contents = implode( '', file("./StartTest/$FileName") ); if ( xml_parse($Parser, $Contents) ) { echo "\n<br />Yipee!"; } else { echo "\n<br />UGH! "; echo xml_error_string(xml_get_error_code($Parser)); } } } ?> <?php # Declare Parser before parsing each file. # Works fine, but seems inefficient. # NOTE: 'StartHandler', 'EndHandler' and 'CharacterHandler' # functions left out for clarity. $DirHandle = opendir("./StartTest"); while ( $FileName = readdir($DirHandle) ) { if ( ereg("^file.[0-9]{5}$", "$FileName") ) { $Contents = implode( '', file("./StartTest/$FileName") ); $Parser = xml_parser_create('UTF-8'); xml_set_element_handler($Parser, 'StartHandler', 'EndHandler'); xml_set_character_data_handler($Parser, 'CharacterHandler'); if ( xml_parse($Parser, $Contents) ) { echo "\n<br />Yipee!"; } else { echo "\n<br />UGH! "; echo xml_error_string(xml_get_error_code($Parser)); } } } ?> -- PHP scripts that make your job easier http://www.analysisandsolutions.com/code/ SQL Solution | Layout Solution | Form Solution T H E A N A L Y S I S A N D S O L U T I O N S C O M P A N Y 4015 7 Ave, Brooklyn NY 11232 v: 718-854-0335 f: 718-854-0409

« previous php.general (#41506) next »