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
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]