boost 之property_tree操作xml文件

来源:互联网 发布:js对象深拷贝 编辑:程序博客网 时间:2024/06/04 18:06
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>




原创粉丝点击