> > If I send just a line of simple text (like "The quick brown fox
> > drowned") for XML parsing, why doesn't it call the function which I
> > declare for character data handling? It doesn't even give me an error
> > :-( Is it wrong to have plain text as input for XML parsing?
>
> Why, as a matter of fact, yes!
>
> The data going into the parser needs to be valid, well-formed, XML. I
> assume you didn't get an error message because you didn't ask to see the
> error message. The most basic thing you can do is (assuming you've
> already declared your XML Parser functions...
>
> $Contents = '<BLAH>The quick brown fox drowned</BLAH>';
>
> if ( xml_parse($Parser, $Contents) ) {
> echo "Yipee!\n";
> } else {
> echo "Rejected by parser:\n";
> echo xml_error_string(xml_get_error_code($Parser));
> }
Well, as a matter of fact I do. My code is pretty straightforward. I declare the
handlers:
if(!($xml_parser=xml_parser_create())){
printError("failed to create xml parser");
}
if(!xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler")){
printError("failed to set element handlers");
}
if(!xml_set_character_data_handler($xml_parser,"charDataHandler")){
printError("failed to set character data handler");
}
And then I parse looking out for any errors:
if (!xml_parse($xml_parser, $xmlstring)){
printError(sprintf("XML:
%s",xml_error_string(xml_get_error_code($xml_parser))));
return false;
}
I don't get any error. I get the $xmlstring from a database and I have verified that
I'm getting the 1-line pure text ("the quick brown fox chocked") just fine. But when
parsed, a call to charDataHandler() is never made :-(
Is it a bug or am I missing something obvious? Dan, did you actually run this and got
an error?
TIA,
thalis
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php