21xrx.com
2024-12-27 21:21:19 Friday
登录
文章检索 我的文章 写文章
C++ 中的XML文件输入输出
2023-07-04 19:41:37 深夜i     --     --
C++ XML 输入 输出 文件

XML(Extensible Markup Language)是一种用于存储和交换数据的标准格式。在C++中,可以使用许多不同的库来读写XML文件,包括libxml2、TinyXML和pugixml等。

其中,pugixml是一个非常流行的XML库,它具有简单易用、高效、跨平台等特点。下面我们来介绍一下在C++中使用pugixml读写XML文件的方法。

首先,需要在代码中包含pugixml头文件:


#include "pugixml.hpp"

接着,可以使用pugixml::xml_document类来读取和创建XML文件。下面是一个简单的读取XML文件的示例代码:


pugi::xml_document doc;

pugi::xml_parse_result result = doc.load_file("example.xml");

if (!result) {

  printf("XML parsing error: %s\n", result.description());

  return 1;

}

pugi::xml_node root = doc.child("root");

for (pugi::xml_node tool : root.children()) {

  printf("Tool: %s\n", tool.child_value("name"));

}

这段代码首先创建了一个空的xml_document对象,然后使用load_file方法加载“example.xml”文件。如果加载失败,则会输出错误信息并退出程序。

加载成功后,可以使用doc.child方法获取根节点。随后,使用children方法迭代处理所有tool节点,并使用child_value方法获取其name子节点的值。

此外,pugixml还提供了一些方便的方法来创建XML文档。下面是一个创建XML文件的示例代码:


pugi::xml_document doc;

pugi::xml_node decl = doc.append_child(pugi::node_declaration);

decl.append_attribute("version") = "1.0";

decl.append_attribute("encoding") = "utf-8";

pugi::xml_node root = doc.append_child("root");

root.append_child("tool").append_child("name").text() = "Visual Studio";

root.append_child("tool").append_child("name").text() = "GCC";

root.append_child("tool").append_child("name").text() = "Clang";

doc.save_file("example.xml");

这段代码首先创建了一个空的xml_document对象,然后使用append_child方法创建声明节点,并在其上设置version和encoding属性。

随后,使用append_child方法创建根节点,并使用append_child方法在其下创建三个tool节点。使用text方法设置其name子节点的值。最后,使用save_file方法将文档保存至“example.xml”文件。

综上所述,pugixml是一个非常强大且易于使用的XML库。使用pugixml读写XML文件,可以大量简化代码并提高效率。如果您正在进行C++开发,并且需要读写XML文件,那么不妨尝试一下pugixml吧!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复