gpt4 book ai didi

c - libxml2 C 库 : SAX push parser context: xmlParseChunk error when passed null terminated string

转载 作者:行者123 更新时间:2023-11-30 17:39:11 25 4
gpt4 key购买 nike

我使用 libxml2 的 xmlCreatePushParserCtxt 创建了一个 xmlParserCtxtPtr,并在此过程中将指针传递给自定义 xmlSAXHandler

然后,我将 XML 文档文件流中的一行读入字符缓冲区,并用 \0 空终止字符替换行尾字符。

chars 缓冲区将按如下方式传递:

xmlParseChunk(pParserCtxt, chars, numChars, 0);

numChars 是从缓冲区开头到空终止字符的字符数。

我的问题是没有调用任何 SAX 处理程序,并且 xmlParseChunk 函数返回以下枚举错误 (47):

XML_ERR_PI_NOT_FINISHED

对于在字符缓冲区中传递的每个 block 都会发生这种情况,但我相信解析器因它处理的初始空终止字符串而陷入错误状态:

<?xml version="1.0" encoding="UTF-8"?>

由于 libxml2 库的文档及其内联注释很少,我希望对该库有更多经验的人能够指出我的错误?

感谢您的浏览。

最佳答案

您不得将 NUL 字符传递给 xmlParseChunk。简单地传递没有终止字符的 block 。有一个 size 参数来传递 block 的长度。

关于c - libxml2 C 库 : SAX push parser context: xmlParseChunk error when passed null terminated string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21916062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com