gpt4 book ai didi

c++ - pugixml错误解析文档c++

转载 作者:行者123 更新时间:2023-11-28 07:05:58 24 4
gpt4 key购买 nike

我已经从网站加载了一个 xml 文档。然后我尝试用 pugixml 解析它。

  ParseXml::parseTrainsXml(char source[]) {    
__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:LC: [ %s ]", source);
size_t size = sizeof(source);

pugi::xml_document doc;

pugi::xml_parse_result result = doc.load_buffer(source, size);

__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:LC: [ %s ]",
result.description());
}

当我尝试加载它时出现以下错误:“解析文档声明/处理指令时出错”。所以这并没有给我很多帮助,所以我试图查找它。 http://pugixml.googlecode.com/svn/tags/latest/docs/manual/loading.html

status_bad_pi 表示由于文档声明/处理指令不正确导致解析停止

所以基本上,我不知道为什么它不起作用。当我像这样声明相同的 xml 时:

const char source[] = "my xml here";

如果我这样声明它确实有效。有人知道哪里出了问题吗?

最佳答案

  size_t size = sizeof(source);

此行不正确。 source 被视为指向 char 的指针,因此 sizeof 始终为 4(或 8)=> 您只会解析前 4/8 个字节。由于您将不完整的缓冲区传递给 pugixml(可能是“

您必须将正确的缓冲区大小传递给您的函数,或者,如果缓冲区保证以 null 结尾(不确定您如何获得缓冲区),您可以使用 doc.load(source) 而不是 doc。 load_buffer(来源,大小)。

关于c++ - pugixml错误解析文档c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21755198/

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