> > 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