问题标签 [rapidxml]

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 投票
8 回答
16647 浏览

c++ - C++:如何从 RapidXml 中提取字符串

在我的 C++ 程序中,我想解析一小段 XML,插入一些节点,然后提取新的 XML(最好是std::string.
向我推荐了RapidXml,但我看不到如何将 XML 作为文本字符串检索回来。
(我可以遍历节点和属性并自己构建它,但肯定有一个我缺少的内置函数。)
谢谢。

0 投票
3 回答
6029 浏览

c++ - c++ rapidxml node_iterator 例子?

我刚开始使用 rapidXML,因为它被推荐给我。现在要迭代多个兄弟姐妹,我这样做:

作为基本测试,它工作正常。无论如何,我遇到了 node_iterator 这似乎是一个额外的迭代器类来为我做这件事。无论如何,我找不到任何关于如何使用它的例子,所以我想知道是否有人可以告诉我:)

谢谢!

0 投票
3 回答
7646 浏览

c++ - RapidXML,读取和保存值

我自己研究了 rapidXML 源并设法读取了一些值。现在我想更改它们并将它们保存到我的 XML 文件中:

解析文件并设置指针

从 XML 读取值

更改值并保存到文件

将文件读入缓冲区

但是,无法保存新值。我的代码只是用“60”的值保存原始文件,它应该是“10”。

Rgds莱恩

0 投票
1 回答
1350 浏览

c++ - 如何解决 RapidXML 字符串所有权问题?

RapidXML是一个快速、轻量级的 C++ XML DOM 解析器,但它有一些怪癖。

在我看来,最糟糕的是:

3.2 字符串的所有权。

RapidXml 生成的节点和属性不拥有它们的名称和值字符串。他们只是持有指向他们的指针。xml_base::name(const Ch *)这意味着您在使用或 xml_base::value(const Ch *)函数手动设置这些值时必须小心。

必须注意确保传递的字符串的生命周期至少与节点/属性的生命周期一样长。实现它的最简单方法是从文档拥有的 memory_pool 分配字符串。memory_pool::allocate_string() 为此目的使用 函数。

现在,我知道这样做是为了提高速度,但这感觉就像一场等待发生的车祸。以下代码看起来无害,但当 foo 返回时,'name' 和 'value' 超出范围,因此 doc 未定义。

按手册使用的建议allocate_string()有效,但很容易忘记。

有没有人“增强”RapidXML 来避免这个问题?

0 投票
3 回答
3896 浏览

c++ - RapidXML 的编译错误

我是 rapidXML 的新手,但第一印象并不积极,我制作了简单的 Visual Studio 6 C++ Hello World Application 并将 RapidXML hpp 文件添加到项目中,并在 main.cpp 中输入:

而且它不编译,有什么帮助吗?RapidXML 是否可以与 Visual Studio 6 一起运行?我得到的错误是:

0 投票
4 回答
49195 浏览

c++ - 如何使用 RapidXml 解析 XML 文件

我必须在 C++ 中解析一个 XML 文件。我正在研究并为此找到了 RapidXml 库。

我对doc.parse<0>(xml).

可以xml是 .xml 文件还是必须是stringor char *

如果我只能使用string或者char *然后我想我需要读取整个文件并将其存储在一个字符数组中并将它的指针传递给函数?

有没有办法直接使用文件,因为我还需要更改代码中的 XML 文件。

如果这在 RapidXml 中是不可能的,那么请在 C++ 中推荐一些其他 XML 库。

谢谢!!!

阿什德

0 投票
3 回答
1576 浏览

c - 为什么 MapViewOfFile 为 rapidxml 返回一个不可用的指针?

正如建议的那样:我有一个大于 2 giga 的文件。我正在使用以下函数映射到内存:

我解析ptr为接受Ch*. 根据 rapidxml 的文档ptr应该是可修改的,但由于它被声明为类型char*,因此无法这样做。程序可以编译,但在运行时崩溃并出现以下错误:访问冲突。我发现在解析char*. 请问我该如何解决?

0 投票
1 回答
815 浏览

xml - 删除输出中的 RapidXML 换行符和空格

调用 print(...) 函数输出 XML 时,如何防止 RapidXML 在元素标记之间添加制表符和换行符?

0 投票
2 回答
1589 浏览

c++ - 克隆 rapidxml::xml_document

如何获得 RapidXML xml_document 的完整副本?

有一个clone_node函数;如何使用 to 创建现有文档的完整副本?

0 投票
1 回答
424 浏览

c++ - 当 xml 节点的值为 null 时 RapidXML 的错误

如果xml中node的值为null,当我们打印xml节点时,该节点没有开始标签,只有结束标签。例如:

test.xml 的内容是:

test.xml 的预期内容是

这是 rapidxml 的错误吗