问题标签 [tinyxml]

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 回答
291 浏览

c++ - 比较一个xml中的元素并将其添加到另一个

我有两个 xml 文件

XML1

XML2

我想比较这两个文件并将缺少的节点从 XML2 添加到 XML1。我在 C++ 中使用 tinyxml。

我正在考虑为每个节点添加一个 guid,即

现在,当我进行比较时,我可以遍历 xml 中的节点并根据 id 比较节点并将缺少的节点添加到 XML1.xml 中。

有没有更好的方法来实现这一点?

0 投票
4 回答
8806 浏览

c++ - 我应该使用 XPath 还是只使用 DOM?

我有一堆存储在 XML 文件中的分层数据。我正在使用 TinyXML 将其封装在手工制作的类后面。给定一个将源签名描述为一组(频率、级别)对的 XML 片段,有点像这样:

我正在用这个提取对:

其中 node() 指向<source>节点。

问题:我会使用 XPath 库获得更整洁、更优雅、更易于维护或以任何其他方式更好的代码吗?

更新:我使用 TinyXPath 两种方式进行了尝试。它们都没有真正起作用,这显然对它们不利。我在做一些根本错误的事情吗?如果这就是 XPath 的样子,我认为它不会让我得到任何东西。

作为次要问题,如果是这样,我应该使用哪个 XPath 库?

0 投票
2 回答
713 浏览

iphone - xml解析需要不同的链接

这里有一个新的...

谁能告诉我关于不同类型 xml 解析的好例子或好教程的链接?

这些是我从某个地方发现的类型..

  • NSXML解析器
  • libxml2
  • TBXML
  • 触摸XML
  • 亲吻XML
  • 小XML
  • GDataXML

我知道在 stackoverflow 上可能还有其他类似的问题,但我想在一个地方提供每种可能的解析的示例或教程的链接,这是我无法找到的东西......

请如果你有关于上面列出的解析的一个或多个好的教程的链接,或者你在任何时候使用过的任何其他解析,这是我在此处发布的谦虚请求。

提前谢谢大家..

0 投票
0 回答
185 浏览

xml - 正确翻译字符实体的最早版本的 TinyXML 是什么?

根据TinyXML 文档,当您在 TiXmlText 对象上调用 Value() 时,最新版本的软件正确地将标准的五个 XML 字符实体(&、"、'、>、<)转换为人类可读的等效项。

相比之下,该文档还指出,“旧版本的 TinyXML '保留'字符实体,但新版本会将它们转换为字符。”

我目前正在使用 TinyXML 2.5.3,并且在 TiXmlText 对象上调用 Value() 会保留返回值中的字符实体。

从 2.6 版开始,字符实体翻译是否仅作为 TinyXML 功能实现?或者我的角色实体是否应该在 2.5.3 中正确翻译并且出现其他问题?

非常感谢您的帮助!

0 投票
2 回答
708 浏览

c++ - 为什么删除的内存无法使用?C++

我有一个使用TinyXML加载的200 MB XML 文件。我的问题是当 TinyXML 对象被销毁时,它使用的内存将不会被重用。我用过在其他项目中使用过的内存泄漏检测器,并且手动单步执行了代码并没有发现任何内存泄漏,所以我不怀疑泄漏的内存是问题所在。

此代码将重现该问题:

使用地址空间监视器我可以看到,在LoadFile()有一大块红色之后,在targetDoc被破坏之后它都是黄色的。然后,当最终的 char buf 被分配时,它显示为红色,但在绿色空间的顶部,而不是从 TinyXML 中释放出来的黄色。如果尝试分配比绿色地址空间更多的缓冲区,应用程序将崩溃(内存不足)。这可以在下面的图片中看到。

加载后 卸载后 字符缓冲区分配

根据地址空间监视器页面“可用地址空间显示为绿色,保留地址显示为黄色,使用(提交的)内存区域显示为红色”那么为什么 TinyXML 释放的内存根据地址空间监视器保持“保留”状态。什么会导致这种情况发生,我该如何阻止它?

编辑:

“你在分配大缓冲区吗?如果是这样,那么黄色空间中可能存在内存碎片,并且没有地方可以分配大的连续缓冲区”

很好的问题,但这表明 TinyXML 存在内存泄漏,而我的工具都没有显示存在内存泄漏。

更新

我制作了无限分配整数的循环,最终似乎使用了所有黄色空间。但是较大的分配不使用它。这向我表明,在由 tinyXML 解析 xml 文件的过程中,堆中散落着一些小的泄漏,它以这样的方式对堆进行分段,使得只有小到足以容纳泄漏之间的对象才能在黄色空间中分配. 所以我在 TinyXML 中搜索了更长时间和更努力的漏洞,但仍然没有找到任何漏洞。一切似乎都得到了正确的释放,这让我回到了最初的困惑状态。

我无法解释这个问题。

字符缓冲区分配 字符缓冲区分配2 字符缓冲区分配3

0 投票
3 回答
2663 浏览

c++ - tinyxml c++ 使用 TiXmlText 存储整数数据

根据类引用,TixmlText 将 const char* 值作为输入。我需要将从文本文件读取的整数数据存储到 xml 中。整数数据存储在 int 向量中,向量的每个元素在传递给 Tixml 文本函数之前都转换为 const char*。

但是当我终于看到生成的 xml 文档时。我在保存数字的元素中得到垃圾值

<timestamp>1&#x00;504</timestamp>

我们如何正确存储整数数据?

我已经在tinyxml.h中追踪到问题发生的地方

功能

值相同class TiXmlNode
的地方TIXML_STRING value;

  • 问题:我错过了一些非常简单的事情吗?
  • 问题:如何正确存储整数数据

编辑:感谢文档的答案,我错过了使用编译时间定义:

TIXML_USE_STL

编译一个或另一个版本。这可以由编译器传递,或者设置为“tinyxml.h”的第一行。

注意:如果在 Linux 中编译测试代码,设置环境变量 TINYXML_USE_STL=YES/NO 将控制 STL 编译。在 Windows 项目文件中,提供了 STL 和非 STL 目标。在您的项目中, 将“#define TIXML_USE_STL”行添加为 tinyxml.h 的第一行可能是最简单的。

Tinyxml 类参考

0 投票
2 回答
5150 浏览

c++ - 使用 Tinyxml 检查是否存在 XML 节点

我正在使用 tinyXml 解析 C++ 中的 XML 文件。谁能告诉我如何检查节点(父/子/下一个兄弟)是否存在。以下是我正在处理的 xml 文件中存在的唯一节点。

如果序列中缺少上述任何节点,则程序将因分段错误而中止。

谁能帮忙。

谢谢

0 投票
1 回答
2513 浏览

c++ - TinyXml how to serialize

EDIT: How can I serialize an xml using tinyxml?

Question 2: Can I deserialize the xml i've created with the same library tinyxml? does it have this advantage?

0 投票
2 回答
3448 浏览

c++ - tinyXml 如何添加元素

我有以下内容:

可以这样吗?我希望拥有 .xml,例如:

谢谢!

我的问题是我是否可以将 int 值作为字符串。如果它;如果我以这种方式发送 xml 文件可以吗?或者有没有办法指定 5 是一个 int 而不是一个文本?

0 投票
2 回答
1630 浏览

c++ - tinyXML xml 用 c++ 解析,没有 xml 文件

我正在尝试从这样的消息中解析 xml:

如何使用字符串或 char 数组数据创建 xmlDoc,这意味着没有 xml 文件?