Я проследовал по этой ссылке http://www.technical-recipes.com/2014/using-boostproperty_tree/, чтобы проанализировать xml. Но как я могу прочитать весь xml без указания конкретного ключа? Я попытался следующий код, но он не в состоянии обработать его и я получаю сообщение об ошибке, как No such node.
Прочтите xml using boost
Код:
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 с использованием вышеуказанного метода?
Вы спрашивали то же самое [с февраля 10] (http://stackoverflow.com/questions/35314178/c-how-to-read-xml-using-boost-xml-parser-and -store-в-карте). Что нам нужно для облегчения? Можете ли вы/просто/показать ожидаемый ввод и вывод? – sehe