c++ ptree判断是否存在节点_c++11 boost - 容器(5) property_tree

本文介绍了如何使用C++11和Boost库中的Property_Tree进行XML、JSON和INI等格式的数据操作,包括读取、写入、添加和修改节点值,以及遍历子节点的方法。通过示例代码展示了解析XML文件、添加和修改配置信息、以及读取JSON数据的过程。
摘要由CSDN通过智能技术生成

c++11 boost - 容器(5) property_tree

首页 计算机相关 c++11-boost库 c++11 boost - 容器(5) property_tree

property_tree 可以解析xml、json、ini、info。

解析 xmlusing namespace boost::property_tree;

ptree pt;

pt.get("debug.sex","0"); //如果获取不到则返回"0"

pt.get_child("debug.modules"); //获取子对象

pt.add_child("debug.modules"); //新增子对象

read_xml(string&, ptree&,xml_parser::trim_whitespace); //不格式化

read_xml(basic_istream&, ptree &);

write_xml(string &, ptree&);

write_xml(basic_ostream &, ptree &);

pt.put("conf.urls.url", "aaa") //只能新增,修改已有的属性值,不能添加新节点

pt.add("conf.urls.url", "bbb") //新增新节点

pt.get("debug."); //获取注释

//获取属性

pt.get("debug.file..name");

pt.get("debug.file..age");

下面是 conf.xml

1

matrix

http://www.daileinote.com

http://www.url1.com

http://www.url2.com

24

// Copyright (c) 2015

// Author: Chrono Law

#include

using namespace std;

#include

#include

using namespace boost::property_tree;

void case1()

{

ptree pt;

read_xml("conf.xml", pt);

pt.get("conf.theme");

pt.get("conf.clock_style");

pt.get("conf.no_prop", 100); //如果不存在,返回100

cout << pt.get("conf.theme") << endl;

cout << pt.get("conf.clock_style") << endl;

cout << pt.get("conf.gui")<< endl;

cout << pt.get("conf.no_prop", 100)<< endl;

//遍历子节点

auto child = pt.get_child("conf.urls");

for (auto& x : child){

cout << x.second.get_value() << ",";

}

cout << endl;

for(auto& x : pt.get_child("conf.urls")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值