之前一直用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操作的更多相关文章

  1. boost.property_tree解析xml的帮助类以及中文解析问题的解决(转)

    boost.property_tree可以用来解析xml和json文件,我主要用它来解析xml文件,它内部封装了号称最快的xml解析器rapid_xml,其解析效率还是很好的.但是在使用过程中却发现各 ...

  2. (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决

    boost.property_tree可以用来解析xml和json文件,我主要用它来解析xml文件,它内部封装了号称最快的xml解析器rapid_xml,其解析效率还是很好的.但是在使用过程中却发现各 ...

  3. boost.property_tree的高级用法(你们没见过的操作)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 前一阵写项目,终于将这个boost下的xml读取类完成了,由于网上对property_trees的讲解很少,最多也就到get_child这个层面, ...

  4. boost::property_tree读取解析.xml文件

    boost::property_tree读取解析.xml文件 1)read_xml 支持中文路径  boost::property_tree::wptree wpt;    std::locale:: ...

  5. 使用boost::property_tree生成带attribute的xml

    曾经写过一篇"使用Boost property tree来解析带attribute的xml", 但是还有姐妹篇一直没贴.看看前一篇贴了都快都快3年了,时间过的真快. 这一小篇就算是 ...

  6. boost::property_tree读取解析ini文件--推荐

    boost::property_tree读取解析ini文件 #include "stdafx.h" #include <iostream> #include <b ...

  7. 使用Boost.PropertyTree处理XML、JSON和INI数据

    Boost.PropertyTree 应该是 Boost 1.41.0 开始正式加入 Boost 版本的.目前 ( 2010/02/28 ) 能下到的最新版本是 1.42.0. 主要作用/应用场合 B ...

  8. Boost property_tree解析json

    使用Boost property_tree解析json 之前使用jsoncpp解析json,现在才知道boost就有解析的库,学习一下吧 property_tree可以解析xml,json,ini,i ...

  9. boost格式化输出xml

    我的boost为1.56而不是1.55 boost在xml的例子给出了一段写xml文件的代码,我简化如下: void debug_settings::save(const std::string &a ...

随机推荐

  1. 点评阿里JAVA手册之编程规约(OOP 规约 、集合处理 、并发处理 、其他)

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文难度系数为三星(★★★) 本文为第二篇 第一篇 点评阿里JAVA手 ...

  2. Python教程(1.2)——Python交互模式

    上一节已经说过,安装完Python,在命令行输入"python"之后,如果成功,会得到类似于下面的窗口: 可以看到,结尾有3个>符号(>>>).>&g ...

  3. OpenGL教程(2)——第一个窗口

    OpenGL环境终于配置好了,现在我们可以开始学习OpenGL了. 首先,创建一个.cpp文件,然后打上几行#include指令: #include <iostream> using st ...

  4. loadrunner提高篇-结果分析实践

    分析图合并 一.分析图合并原理 选择view->merge graphs,弹出如图1所示对话框 图1(设置合并图) 1.选择要合并的图.选择一个要与当前活动图合并的图,注意这里只能选择X轴度量单 ...

  5. Docker - docker machine

    前言 之前在使用docker的时候,对于docker-machine的理解有一些误解(之前一直以为docker-machine和docker-engine等价的,只不过是在window或者mac平台上 ...

  6. 从RGB色转为灰度色算法

    一.基础  对于彩色转灰度,有一个很著名的心理学公式: Gray = R*0.299 + G*0.587 + B*0.114 二.整数算法 而实际应用时,希望避免低速的浮点运算,所以需要整数算法. 注 ...

  7. python不使用第三方变量,交换两个变量的值

    #不使用第三个变量交换两个变量的值 a=1 b=2 a,b=b,a#python的直接交换 #另一种交换方法 a=a+b#a=3 b=2 b=a-b#a=3 b=1 a=a-b#a=2 b=1 pri ...

  8. cookie笔记(一)

    1.浏览器存储信息的一个工具 2.容量有限,每个域名一般50个.详情 3.形式:键=值: 4.获取:document.cookie; 5.设置:document.cookie="uid=we ...

  9. Java基础学习之线程

    1.尽量避免直接使用 同步.Thread等原生操作线程的类,可以通过java.util.concurrent下对底层包装好的类进行操作, ReentrantLock:lock trylock  unl ...

  10. 安装python2.7

    系统的yum程序使用的是python2.6,不能够卸载系统所带的python环境.python2.7的安装命令如下 tar vjxf Python-2.7.1.tar.bz2 cd Python-2. ...