我使用libxml2 xmlParserCtxtPtr
创建了一个xmlCreatePushParserCtxt
,并在此过程中将指针传递给自定义xmlSAXHandler
。
\0
空终止字符替换行尾字符。
然后按如下方式传递此chars
缓冲区:
xmlParseChunk(pParserCtxt, chars, numChars, 0);
numChars
是缓冲区起始处的字符数,包括空终止字符。
我的问题是没有调用任何SAX处理程序,xmlParseChunk
函数返回以下枚举错误(47):
XML_ERR_PI_NOT_FINISHED
对于在字符缓冲区中传递的每个块都会发生这种情况,但我相信解析器会从它处理的初始空终止字符串中陷入错误状态:
<?xml version="1.0" encoding="UTF-8"?>
由于libxml2库的文档稀疏,其内联注释也是如此,我希望有更多图书馆经验的人可以指出我的错误?
感谢您一看。
答案 0 :(得分:0)
您不得将NUL字符传递给xmlParseChunk
。只需传递没有终止字符的块。有一个size
参数来传递一个块的长度。