我想使用包含特定属性的节点来解析随机xml文件,并检索该属性的所有值。用例是有许多具有不同节点的xml,但是要检索的属性始终是已知的。

这是一个文件示例:

<node>
 <container>
  <object attribute="value" />
  <object attribute="value" />
 <container/>
 <supercontainer>
  <subcontainer>
   <otherobject attribute="value" />
  <subcontainer/>
 <supercontainer/>
</node>


这就是我现在使用boost property_tree所拥有的,但是我不知道该在循环中做什么:

ptree pt;
read_xml(xml_file, pt);
BOOST_FOREACH(boost::property_tree::ptree::value_type &ele, pt)
{
   //NO IDEA
}


欢迎提出想法。

谢谢

最佳答案

好的,我使用以下方法解决了它:

void recurseManifest(ptree &pt, int lvl)
{
  for (ptree::iterator current = pt.begin(); current != pt.end();)
  {
    try
    {
        std::cout << current->second.get<std::string>("<xmlattr>.attribute") << std::endl;
    }
    catch(const boost::property_tree::ptree_bad_path &err)
    {
        std::cerr << err.what() << std::endl;
    }
    assets = recurseManifest(current->second, lvl++);
    ++current;
  }
}

10-07 13:34