我正在尝试编写一个 XML 解析器,将 XML 文件解析为 boost::property_tree
并遇到了这个问题。我如何(快速)检查某个属性的孩子是否存在?
显然我可以使用 BOOST_FOREACH
遍历所有孩子 - 但是,没有更好的解决方案吗?
原文由 paul23 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试编写一个 XML 解析器,将 XML 文件解析为 boost::property_tree
并遇到了这个问题。我如何(快速)检查某个属性的孩子是否存在?
显然我可以使用 BOOST_FOREACH
遍历所有孩子 - 但是,没有更好的解决方案吗?
原文由 paul23 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 count() 检查标签是否存在
typedef boost::property_tree pt;
pt::ptree tree;
pt::read_xml(filename, tree);
int bodyCount = tree.count( "body" );
if( bodyCount == 0 )
{
cout<<"Failed : body tag not found"<<endl;
return -1;
}
原文由 Abdul Wazeed 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答836 阅读
1 回答911 阅读
1 回答945 阅读
1 回答711 阅读
1 回答813 阅读