hallo daniel,
hallo all,
after being active this weekend, i found a 'funny' bug in the push parser
implementation. i don't want to mention that the error messages are not
too usefull, but the pushparser is not able detect some trailing junk at the
end of a document. more detailed the push parser will not report an error,
if there is only a single character after the root element was closed.
the following lines will show the problem with maximum simplicity:
xmlParseChunk(ctxt, "<A/>", 4, 0);
xmlParseChunk(ctxt, "X", 1, 0);
xmlParseChunk(ctxt, "", 0, 1);/* finish the parse */
if ( ctxt->errNo == 0 ) {
printf( "ouch!\n" );
}
of course '<A/>X' is *not* a well formed XML document and so the document
returned by the parser is only '<A/>'. while this is ok if one likes to
repair a document, not reporting an error at all, is definitly wrong.
because of this i would like to provide a tiny patch, that fixes this
problem. i am not shure if this is the correct way, but at least it fixes the
misbehaviour.
christian glahn
Attachment:
push_parser_patch.diff
Description: Text document