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

标签 c++ xml parsing rapidxml

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

我对 doc.parse<0>(xml) 有疑问.

可以xml是 .xml 文件还是需要是 stringchar * ?

如果我只能使用 stringchar *那么我想我需要读取整个文件并将其存储在 char 数组中并将其指针传递给函数?

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

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

谢谢!!!

Ember

最佳答案

RapidXml 带有一个类来为您执行此操作,rapidxml_utils.hpp 文件中的 rapidxml::file。 比如:

#include "rapidxml_utils.hpp"

int main() {
    rapidxml::file<> xmlFile("somefile.xml"); // Default template is char
    rapidxml::xml_document<> doc;
    doc.parse<0>(xmlFile.data());
...
}

请注意,xmlFile 对象现在包含 XML 的所有数据,这意味着一旦超出范围并被销毁,doc 变量将不再安全可用。如果在函数内部调用 parse,则必须以某种方式将 xmlFile 对象保留在内存中(全局变量、new 等),以使 doc 保持有效。

关于c++ - 如何使用 RapidXml 解析 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2808022/

相关文章:

c++ - openGL 中的全屏

java - 安卓 : Design shown in XML not reflected in the UI

java - RSQL : How to query for null column values?

parsing - 快乐:这不是关键字

c - 将行解析为 ***char 时出现段错误

c++ - 如何在 C++ 中使用 map::find 中的 map::end

c++ - OnTimer 方法在 MFC 中不起作用

c++ - 为什么 volatile 对象不能调用非 volatile 成员函数

xml - XSLT-使用当前节点的完整XML路径打印错误消息

java - 让用户点击的地方出现一个按钮