c++:boost读取xml

int   load(const std::string &strFilePath, const std::string &strFileName)
{
m_mapParam.clear();
string strConfFullPath;
if (kbdSuccess != makeConfigFileFullPath(strFilePath, strFileName, strConfFullPath))
{
return kbdFailed;
}

boost::property_tree::ptree pt;
namespace xml = boost::property_tree::xml_parser;
try
{
xml::read_xml(strConfFullPath, pt, xml::no_comments);
BOOST_AUTO(module, pt.get_child("root"));
for (BOOST_AUTO(pModuleIter, module.begin()); pModuleIter != module.end(); ++pModuleIter)
{
string strModuleName = pModuleIter->second.get<string>("<xmlattr>.name");
boost::property_tree::ptree ptParam = pModuleIter->second;
for (BOOST_AUTO(pParamIter, ptParam.begin()); pParamIter != ptParam.end(); ++pParamIter)
{
if (pParamIter->first == "param")
{
string strKey = pParamIter->second.get<string>("<xmlattr>.key");
string strValue = pParamIter->second.get<string>("<xmlattr>.value");
m_mapParam[strModuleName + CN_PARAM_SEPARATOR + strKey].push_back(strValue);
}
}
}
}
catch (std::exception &ex)
{
LOGERROR("解析配置文件[%s]失败.Msg=[%s]", strConfFullPath.c_str(), ex.what());
return kbdFailed;
}

return kbdSuccess;
}

转载于:https://www.cnblogs.com/1521299249study/p/10178596.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值