问题标签 [pugixml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
486 浏览

c++ - 嵌套类中的 pugixml 错误

我有以下 C++ 代码:

但是每次我想编译它(使用MinGW g++ 4.8.1)时,都会产生很多错误:

我还遇到过,当我删除该pugi::xml_document doc;行时,所有错误都会消失(然后程序编译并运行良好)。这意味着,错误必须是由 pugixml 引起的。我必须在我的代码中进行哪些更改才能让程序正确编译?

0 投票
1 回答
2702 浏览

c++ - 如何使用 pugixml 读取节点?

我刚刚下载了 pugixml 库,我正在尝试使其适应我的需要。它主要面向我不使用的 DOM 样式。我存储的数据如下所示:

Pugixml 指南说:

通常将数据存储为某个节点的文本内容 - 即这是一个节点。在这种情况下,节点没有值,而是有一个 node_pcdata 类型的子节点,其值为“这是一个节点”。pugixml 提供 child_value() 和 text() 辅助函数来解析此类数据。

但是我在使用这些方法时遇到了问题,我没有得到节点值。

如何读出for内部的索引、x和y值?我会获得所有帮助。

0 投票
1 回答
2773 浏览

c++ - 如何使用 pugixml 替换节点 pcdata 或文本

我正在寻找一种优雅的解决方案来使用 pugixml(1.6 版)替换节点 pcdata。例如,遍历一个节点集并将子值更新为某个值。

我用过:

但顾名思义,它只是附加数据,但我找不到任何功能:

另一个注意事项是节点上的属性很重要,应该保持不变。

谢谢你的帮助。

0 投票
1 回答
762 浏览

android - PugiXML 错误 - status_end_element_mismatch

我在我的一个示例(带有 JNI 的 Android)中使用 pugiXML,我试图解析一个用中文或日文编写的 XML 文件,我总是得到

  • case 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 毫克。我读过有人成功使用了 pugiXML 超过 9 mg 的文件,所以这不是内存问题。

有人遇到过这种问题吗?如果有人有一些指示?

谢谢你。

0 投票
1 回答
553 浏览

c++ - 为什么 pugixml 不写回当前打开的文件?

下面的代码基本上就是我正在做的所有事情——打开一个 XML 文件,处理它并(试图)写回它。但回写失败,每次。我试图找到一个解决方案编写代码,谷歌搜索,但没有得到答案。

那么,是 pugi 在接受输入后没有关闭文件还是什么?情况似乎并非如此,因为我可以在程序运行时删除文件。有谁知道为什么我的程序读取文件但不将修改写回其中?

0 投票
0 回答
556 浏览

c++ - 两个项目两次使用同一个库的源

我有一个库和一个具有以下文件层次结构Lib的可执行文件:App

两者都App使用Lib外部库 pugixml(可能是不同的版本)。它们直接将这些文件包含在项目中,并且 pugixml 基本上不再是外部依赖项。

App依赖Lib并包括所有必要的来源Lib(它不链接Lib)以成功编译自身。

如何避免编译时出现的 pugixml.hpp 库的命名空间冲突App。如何在此设置中使用同一库的两个不同版本?

我看到以下选项:

  • 将命名空间pugixml移入Ainto namespace A{ namespace pugixml {...} },同样的 in app:将命名空间pugixml移入appintonamespace app{ namespace pugixml {...} }

  • 重命名所有命名空间?我该怎么做?硬编码?还是有为此的c ++语法?

什么是好方法?

0 投票
1 回答
1248 浏览

c++ - 在 pugi xml_node 中保存 PUGI XML 树的子树

在一个函数中,我使用 pugi 首先加载一个 XML 文件。然后,我遍历树的子 xml 节点并将一些子 xml 节点(xml_node 类型的对象)推送到 xml_node 的向量。但是一旦我退出这个函数,从 XML 文件加载的原始 XML 树结构对象被删除,导致 xml 节点向量中的元素变得无效。

下面是一个示例代码(快速编写)来显示这一点:

因此,我需要一种方法来保存/复制/克隆/移动原始 XML 树的子树(xml 节点),以便即使在删除原始 XML 根树对象之后,我也可以在以后安全地解析它们。如何在 pugi 中做到这一点?

0 投票
1 回答
684 浏览

c++ - 使用 pugixml 和 C++ 将行添加到 .xml

我有一个需要使用 pugixml 和 Cpp 写入的 XML 文档。我的 XML 文档的一部分如下所示:

如何在第 13 行之后添加另一行 (dude name="man" delay="1" life="0.75" score="5") ,将所有其他行移到我的 .xml 文件中的下一行?

我在尝试....

但它似乎没有工作。有任何想法吗?

0 投票
1 回答
749 浏览

c++ - pugixml解析器获取元素值

我的 XML 结构如下:

我使用此代码正确打印名称标签的值

但是,我还需要在街道内打印名称和数字的值 - 标签,但我无法成功。

下面是显示来自这两个标签元素的值的代码:

但它什么也没显示。

有谁知道可能出了什么问题?

0 投票
1 回答
265 浏览

android - 使用 Android NDK 编译 PugiXML

我正在尝试使用 Android NDK 编译 PugiXML 库;它在网站上说这是可能的,但是下载不包含android makefile,而且我以前没有使用过NDK(文档没有帮助!)

我目前收到错误:

我最初收到一个错误,因为 NDK 找不到#include <iterator>,我不确定我是否正确解决了这个问题。我尝试遵循这个 stackoverflow Q/A并最终出现上面显示的错误。

我当前的 Android.mk 如下所示:

我当前的 Application.mk 看起来像这样: