我必须在 C++ 中解析一个 XML 文件。我正在研究并为此找到了 RapidXml 库。
我对 doc.parse<0>(xml)
有疑问.
可以xml
是 .xml 文件还是需要是 string
或 char *
?
如果我只能使用 string
或 char *
那么我想我需要读取整个文件并将其存储在 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/