PugiXML error语言 - status_end_element_mismatch
PugiXML error - status_end_element_mismatch
我在我的一个示例中使用pugiXML(带有JNI的Android),并且我正在尝试解析例如中文或日语编写的XML文件,我总是得到
-
情况 status_end_element_mismatch:返回"开始-结束标记不匹配";几乎总是在 XML 文件附近或末尾的某个随机行上。
-
我得到解析结果
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load(File._Buffer);
if (result){
__android_log_print(ANDROID_LOG_INFO, "MyExample", "XML [ %s ] ;parsed without errors, attr value:[ %s ] ",File._Buffer , doc.child("node").attribute("attr").value());
else {
__android_log_print(ANDROID_LOG_INFO, "MyExample", "Error description: %s" , result.description());
__android_log_print(ANDROID_LOG_INFO, "MyExample", "Error offset: %ul" , result.offset);
}
我的英语XML工作得很好。
我已经使用各种验证器甚至"手动 - 逐行"检查了 XML 文件,它没有缺少任何标签,并且所有验证器都确认它是一个有效的 XML 文件。
我的文件不超过 1 毫克。我读过人们使用超过9毫克文件的成功pugiXML,所以它不可能是内存问题。
有人遇到过这种问题吗?如果有人有一些指示?
谢谢。
经过仔细分析,问题出在打开文件时的信息中。由于我正在读取多个XML文件,我只是读取了错误文件的大小,该大小小于我尝试读取的原始文件。
pugiXML 从另一个(较小的)文件中读取大小的文件,在读取文件时,文件被截断,结束父标记根本没有关闭该行 - 因此 Pugixml 报告错误"开始-结束标记不匹配"。
当给定正确的大小时,xml 解析效果很好。我要感谢Zeuxcg在这件事上的巨大帮助!谢谢你帮助我。
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 反转依赖于 end() 的迭代器
- std::multimap<std::chrono::milliseconds, T>::rbegin 在 MSVS-13 中指向 end()?
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- remove(str.begin(), str.end(), );无法正常工作(我正在使用视觉工作室 2012)
- 在 ifcondition al中 find() C++ STL 中的 == a.end() 有什么用?
- 野牛/yacc 解析器在不被空格分隔时跳过 grammer - "unexpected $end"
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 了解向量中的 .begin 和 .end
- 如何实现链表的 end()?
- 使用 map.end() 访问 map 的最后一个元素
- C++ const char with .begin() and .end()
- 接收"Error compiling: 0:1(1): error: syntax error, unexpected $end" C++、GLSL、着色器文件
- 为什么 std::find( s.begin(), s.end(), val ) 比集合 s 的 s.find(val) 慢 1000 倍<int>?
- 如何使用vector.begin()和vector.end()遍历矩阵?
- 我当前实现的双向链表类是否需要重构迭代器 end() 功能?
- 创建一个简单的前向迭代器,该迭代器在循环缓冲区的"end"处自动换行
- 在不使用vector.end()的情况下迭代std::vector
- 编译代码时"[Warning] extra tokens at end of"