我想使用包含特定属性的节点来解析随机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;
}
}