• 使用boost/property_tree进行XML操作


          之前一直用tinyxml来进行XML文件操作,刚刚接触的一个测试项目是使用boost操作的,虽然不清楚这两者的差异,但boost使用起来还挺方便的,所以简单整理一些关于boost解析和创建XML文件的的操作方法,如果有错误欢迎指正。

          首先,简单介绍一下怎么安装boost_1_55_0,我是安装在D盘上的。

          运行cmd.exe:

          C:UsersAdministrator>D:

          D:>cd  D:boost_1_55_0

          D:oost_1_55_0>bootstrap.bat

          ( 执行完会在boost_1_55_0下生成一个bjam.exe文件。)

          D:oost_1_55_0>bjam.exe

          ( 此过程将默认根据系统安排好的编译工具来编译相应的lib文件和头文件,时间会略久些。)

          当控制台出现 D:boost_1_55_0> 时,我们就完成了boost库的安装。

         

          其次,关于属性配置:

          VC++目录 -> 包含目录 -> D:oost_1_55_0

                             库目录 -> D:oost_1_55_0stagelib

          C++ -> 常规 -> 附加包含目录 -> D:oost_1_55_0

          连接器 -> 常规 -> 附加库目录 -> D:oost_1_55_0stagelib

                   -> 输入-> 附加依赖项 -> 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(' ', 1);

              boost::property_tree::xml_parser::write_xml(xmlOutputString, datum, std::locale(), settings);

              通过settings使输出格式更加规范化,注意xmlOutputString必须为string型。

           2).与tinyxml不同,ptree是先定义子节点信息,最后添加父节点。

           3).xml文件中的文字部分若加双引号,则解析出来会添加一个&quoc的符号,具体原因我也不清楚,在实际应用时注意尽量避免文字部分加双引号就好了。

  • 相关阅读:
    .NET Tools...
    函数重载
    友元课后题
    怎么防止用户输入错误信息
    C#动态求圆的面积
    重载自增
    C++数学应用
    位运算符
    MSDN放出了VS2010简体中文正式版(附下载地址)
    字符串复制
  • 原文地址:https://www.cnblogs.com/xiaoxiaomeng94/p/5712919.html
Copyright © 2020-2023  润新知