boost read_xml() 函数windows和Linux下使用总结

2 篇文章 0 订阅

近期项目需要用到xml文件和属性树,使用boost库中的read_xml()函数,发现一些问题,现总结如下:


1. read_xml()函数在文件boost/property_tree/xml_parser.hpp中,使用了开源的软件rapid_xm库;

2. 使用该函数,需要编译boost库,我的boost环境配置:

1) windows:include:D:\Program Files\boost\boost_1_55_0

libs: D:\Program Files\boost\boost_1_55_0\stage\lib

2) Linux:include:/home/chenchen/boost_1_55_0

    libs: /home/chenchen/boost_1_55_0/stage/lib

3. 源文件test.cpp包含头文件:

1) #include <boost/property_tree/ptree.hpp>

2) #include<boost/property_tree/xml_parser.hpp>

声明:using namespace boost::property_ptree;

4. 源程序 test.cpp vs2012下编译运行通过

#include <string>
#include <iostream>
using namespace boost::property_tree;
using namespace boost::system;


int main( int argc, char* argv[] )
{
  ptree pt;
try
{
boost::property_tree::xml_parser::read_xml("D:\\工作文档\\UmpEvent\\Debug\\conf.xml", pt);
}
catch(xml_parser::xml_parser_error sysError)
{
std::cout << "Error: " <<sysError.what() << std::endl;
}

std::cout << pt.get<std::string>("conf.theme") <<std::endl;
}

5. 需要注意的问题:

1)  windows下read_xml()函数中xml文件的位置描述字符串中,分隔文件夹位置需要用\\,读取绝对路径xml文件是,需要在路径前加反义字符\或者/,如可执行文件相同路径下的xml文件路径为

\.\\conf.xml

否则会报cannot open file错误

2) Linux下可以使用绝对位置,也可以使用相对位置,且不用加转义符号,即“conf.xml”或者“/root/conf.xml”均可

3) 编译时需要包含头文件和静态库文件,Linux下使用-I$(INLCUDES_PATH)和-L$(LIBS_PATH)


以上,如有疑问可以给我留言。2015-01-21

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值