我有一个包含以下数据的XML的一部分:
<DATA>
<VALUE>July</VALUE>
<VALUE>August</VALUE>
</DATA>在下面的代码中,"kv.first()“等于"DATA”
BOOST_FOREACH(const boost::property_tree::ptree::value_type &kv, children)
{
std::cout << "kv.first : " << kv.first << std::endl;
std::cout << "kv.second.data : " << kv.second.data() << std::endl;
}我在std::cout中看到的是:
kv.first : DATA
kv.second.data : July我期望的是:
kv.first : DATA
kv.second.data : July
kv.first : DATA
kv.second.data : August我写错什么了吗?还是遗漏了什么?
感谢您的回答。
发布于 2017-07-10 23:53:08
您需要修改BOOST::FOREACH循环以包括根标记:
BOOST_FOREACH(ptree::value_type &v, pt.get_child("DATA"))其中pt是您的ptree,如果您的根标记在此之前有一些值,则还需要包括它们,例如:
<ROOT>
<DATA>
<VALUE>July</VALUE>
<VALUE>August</VALUE>
</DATA>
</ROOT>现在foreach循环变成:
BOOST_FOREACH(ptree::value_type &v, pt.get_child("ROOT.DATA"))https://stackoverflow.com/questions/45015921
复制相似问题