I\'m iterating over an XML document using boost property tree and storing the results in a struct. The issue I have is that I can only get to the first \"item\" nodes and can\'t
I figured it out, but this is not what i would call an intuitive xml-parser library.
void parse_xml( boost::property_tree::iptree const& pt )
{
BOOST_FOREACH(boost::property_tree::iptree::value_type const& v, pt.get_child("root.jar"))
{
// Show jar
if ( boost::iequals( v.first, "" ) ) {
std::cout << "jar : " << v.second.get("NaME") << std::endl;
}
if ( boost::iequals( v.first, "snack" ) )
{
BOOST_FOREACH(boost::property_tree::iptree::value_type const& val, v.second)
{
// Show snack
if ( boost::iequals( val.first, "" ) ) {
std::cout << "snack : " << val.second.get("name") << std::endl;
}
if ( boost::iequals(val.first, "item") )
{
BOOST_FOREACH(boost::property_tree::iptree::value_type const& val2, val.second)
if ( boost::iequals( val2.first, "" ) ) {
// Show item
std::cout << "item : " << val2.second.get("nAmE") << std::endl;
}
}
}
}
}
}
If you compare the two code snippets you can see that mine is bit more regularly structured.
node