boost 之property_tree操作xml文件

本文介绍了Boost库中的property_tree模块,该模块提供了一种方便的方法来读取和写入XML配置文件。通过具体示例展示了如何使用property_tree进行XML文件的读取与修改,并附带了完整的代码示例。
boost中提供了对配置文件读取的支持,它就是:property_tree。
basic_ptree 是property_tree的核心基础。其接口像std::list。可以执行很多基本的元素操作,比如使用begin()、end()等。
此外还加入了操作属性树的get()、get_child()、get_value()、data()等额外的操作。

以下主要对xml配置文件进行读写操作

一.xml文件读操作
接口:
read_xml
实例:
ptree pt;
 try
 {
  read_xml("conf.xml", pt);
 }
 catch (const std::exception&)
 {
  cout << "file open err" << endl;
  return 0;
 }
 auto data = pt.get_child("conf");
 int gui = data.get<int>("gui");
 string theme = data.get<string>("theme");
 string url1 = data.get<string>("urls.url");
 int style = data.get<int>("clock_style");


二.xml写操作
接口:
write_xml
实例:
ptree pt2;
 try
 {
  read_xml("conf.xml", pt2);
 }
 catch (const std::exception&)
 {
  cout << "file open err" << endl;
  return 0;
 }

 pt2.put("conf.gui", 88);
 write_xml("conf.xml", pt2);//输出数据到文件中
write_xml(cout, pt2);//输出数据到控制台

 /*   不能用注释中的方式写入数据,否则无效
 auto writedata = pt2.get_child("conf");
 writedata.put("gui", 12);
 writedata.put("theme", "aaaaa");
 writedata.put("urls.url", "www.baidu.com");
 write_xml("conf.xml", pt2);
 */

xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<conf> 
<gui>88</gui><theme>matrix</theme><urls>
<url>www.url1.com</url><url>www.url2.com</url><url>www.url3.com</url></urls><clock_style>24</clock_style></conf>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值