我跟着這個鏈接http://www.technical-recipes.com/2014/using-boostproperty_tree/解析xml。但是,如何在不指定特定鍵的情況下讀取整個xml?我想下面的代碼,但它無法處理它,我得到的錯誤爲No such node.
閱讀xml使用增強
代碼:
const std::string XML_PATH1 = "./test1.xml";
#define ROOTTAG "roottag"
boost::property_tree::ptree pt1;
boost::property_tree::read_xml(XML_PATH1, pt1);
BOOST_FOREACH(boost::property_tree::ptree::value_type & node, pt1.get_child(ROOTTAG))
{
std::string tagname = node.first;
tagname += ".";
boost::property_tree::ptree subtree = node.second;
BOOST_FOREACH(boost::property_tree::ptree::value_type & v, subtree.get_child(node.first.data()))
{
//does not enter here
tagname += v.first.data();
tagname += ".";
xmlmap[tagname] = tagvalue;
}
}
什麼已經在第二循環,而不是node.first.data()
指定?
BOOST_FOREACH(boost::property_tree::ptree::value_type & v, subtree.get_child(node.first.data()))
請注意,我必須使用BOOST_FOREACH
本身,並使用相同的方法。 我引用了很多網站,但無法找到如何在不指定特定密鑰的情況下讀取整個xml。
另外,如何使用上述方法讀取多層次的XML?
你一直在問相同的[自二月十日](http://stackoverflow.com/questions/35314178/c-how-to-read-xml-using-boost-xml-parser-and -store-在圖)。我們得到什麼緩解?你能/只是/展示預期的輸入和輸出? – sehe