使用boost/property_tree进行XML操作
之前一直用tinyxml来进行XML文件操作,刚刚接触的一个测试项目是使用boost操作的,虽然不清楚这两者的差异,但boost使用起来还挺方便的,所以简单整理一些关于boost解析和创建XML文件的的操作方法,如果有错误欢迎指正。
首先,简单介绍一下怎么安装boost_1_55_0,我是安装在D盘上的。
运行cmd.exe:
C:\Users\Administrator>D:
D:\>cd D:boost_1_55_0
D:\boost_1_55_0>bootstrap.bat
( 执行完会在boost_1_55_0下生成一个bjam.exe文件。)
D:\boost_1_55_0>bjam.exe
( 此过程将默认根据系统安排好的编译工具来编译相应的lib文件和头文件,时间会略久些。)
当控制台出现 D:boost_1_55_0> 时,我们就完成了boost库的安装。
其次,关于属性配置:
VC++目录 -> 包含目录 -> D:\boost_1_55_0
库目录 -> D:\boost_1_55_0\stage\lib
C++ -> 常规 -> 附加包含目录 -> D:\boost_1_55_0
连接器 -> 常规 -> 附加库目录 -> D:\boost_1_55_0\stage\lib
-> 输入-> 附加依赖项 -> libboost_signals-vc120-mt-gd-1_55.lib
libboost_regex-vc120-mt-gd-1_55.lib
下面通过一个小demo来具体操作:将下面这个名为MyXML.xml的文件内容解析出来,并将解析结果自动的重新写回到另外一个名为AutoCreateXML.xml的文件中。

配置属性 -> 调试 -> 命令参数 -> MyXML.xml
接下来开始编写代码。





这个程序已经编译通过并得到预期结果。下面关于程序做几点说明:
1).boost::property_tree::xml_writer_settings<char>settings('\t', 1);
boost::property_tree::xml_parser::write_xml(xmlOutputString, datum, std::locale(), settings);
通过settings使输出格式更加规范化,注意xmlOutputString必须为string型。
2).与tinyxml不同,ptree是先定义子节点信息,最后添加父节点。
3).xml文件中的文字部分若加双引号,则解析出来会添加一个&quoc的符号,具体原因我也不清楚,在实际应用时注意尽量避免文字部分加双引号就好了。
使用boost/property_tree进行XML操作的更多相关文章
- boost.property_tree解析xml的帮助类以及中文解析问题的解决(转)
boost.property_tree可以用来解析xml和json文件,我主要用它来解析xml文件,它内部封装了号称最快的xml解析器rapid_xml,其解析效率还是很好的.但是在使用过程中却发现各 ...
- (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
boost.property_tree可以用来解析xml和json文件,我主要用它来解析xml文件,它内部封装了号称最快的xml解析器rapid_xml,其解析效率还是很好的.但是在使用过程中却发现各 ...
- boost.property_tree的高级用法(你们没见过的操作)
版权声明:本文为博主原创文章,未经博主允许不得转载. 前一阵写项目,终于将这个boost下的xml读取类完成了,由于网上对property_trees的讲解很少,最多也就到get_child这个层面, ...
- boost::property_tree读取解析.xml文件
boost::property_tree读取解析.xml文件 1)read_xml 支持中文路径 boost::property_tree::wptree wpt; std::locale:: ...
- 使用boost::property_tree生成带attribute的xml
曾经写过一篇"使用Boost property tree来解析带attribute的xml", 但是还有姐妹篇一直没贴.看看前一篇贴了都快都快3年了,时间过的真快. 这一小篇就算是 ...
- boost::property_tree读取解析ini文件--推荐
boost::property_tree读取解析ini文件 #include "stdafx.h" #include <iostream> #include <b ...
- 使用Boost.PropertyTree处理XML、JSON和INI数据
Boost.PropertyTree 应该是 Boost 1.41.0 开始正式加入 Boost 版本的.目前 ( 2010/02/28 ) 能下到的最新版本是 1.42.0. 主要作用/应用场合 B ...
- Boost property_tree解析json
使用Boost property_tree解析json 之前使用jsoncpp解析json,现在才知道boost就有解析的库,学习一下吧 property_tree可以解析xml,json,ini,i ...
- boost格式化输出xml
我的boost为1.56而不是1.55 boost在xml的例子给出了一段写xml文件的代码,我简化如下: void debug_settings::save(const std::string &a ...
随机推荐
- 关于XAMPP环境配置
关于XAMPP软件 * Apache - 软件服务器(运行PHP) * 启动失败 * 原因 - 端口号被占用 * 错误信息 - Error: Apache shutdown unexpectedly ...
- Xamarin控件使用之GridView
[Activity(Label = "MainGridViewActivity", LaunchMode = LaunchMode.SingleTop)]//设置Activity启 ...
- java map集合的知识
/** * Map用于存储键值对,不允许键重复,值可以重复. * (1)HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度. * H ...
- 利用Excel做一些简单的数据分析
先来几个原始数据的截图,如下所示: 示例图就举一个吧,因为这些数据量还挺大的,大概的总结了一下,这下列这几栏中不合规范的数据占比很大: (1)民族(经分析,在此表中所涉及到的民族分别为:汉族,满族,蒙 ...
- 同是办公软件,wps和office有什么区别?
今天完美小编为大家带来的是wps和office有什么区别教程,那么到底有什么区别呢?相信很多朋友都模棱两可,说不出所以然,看看下面的教程,相信你会选择更适合你的那一款软件.一起来看看吧! 1.两者特点 ...
- 使用JPA和Hibernate进行批量处理的最佳方式
Tips 原文作者:Vlad Mihalcea 原文地址:The best way to do batch processing with JPA and Hibernate 在本文中,你将了解什么是 ...
- sql 注入命令大全
1.判断有无注入点 ; and 1=1 and 1=2 2.猜表一般的表的名称无非是admin adminuser user pass password 等.. and 0<>(selec ...
- ORA-00245问题总结
(1)问题描述 在进行数据库归档备份时(备份归档日志文件和控制文件),有时成功,有时失败,失败报错如下: RMAN-00571: =================================== ...
- MFC简单绘制安卓机器人
原始日期:2014-03-29 20:35 众所周知,google的安卓机器人形象十分经典,包括眼睛的位置,胳膊以及天线的位置都是有固定位置和比例的,而且是最恰当的,看起来最美.而微软基础类库MFC绘 ...
- ASP.NET Core配置Kestrel 网址Urls
ASP.NET Core中如何配置Kestrel Urls呢,大家可能都知道使用UseUrls() 方法来配置. 今天给介绍全面的ASP.NET Core 配置 Urls,使用多种方式配置Urls.让 ...