我想知道Boost Ptree是否允许在不知道属性标签的情况下解析.xml文件。我有一个XML文件,该文件会定期更新为新标签,新数据,甚至删除某些标签。这些常规更改促使我开始考虑在不对属性名称进行硬编码的情况下分析文件。有什么方法可以在不说明标签名称的情况下读取XML文件中的所有数据?任何帮助表示赞赏!
Ptrees不是解析XML的理想选择,但是Boost已集成到我的项目的其余部分中,以至于使用libxml2或其他解析器会非常费力
对不起,那没有道理。
有仅标头的选项,以及很多非常轻量的选项。请参阅在C ++中应该使用什么XML解析器?
由于Boost Property Tree显然不是库,因此,与需要解决的抽象抽象和不可能实现的成本相比,添加库的感知成本将远远超过。
好像我在使用read_xml时必须声明标签名称。似乎没有一种方法可以读取父节点下的所有子节点并存储它们。
干得好:
#include <boost/property_tree/xml_parser.hpp>
int main() {
boost::property_tree::ptree pt;
std::ifstream ifs("input.xml");
read_xml(ifs, pt);
write_xml(std::cout, pt);
}
我也阅读了boost文档,但似乎找不到任何东西。
我将从这里开始:https : //www.boost.org/doc/libs/1_73_0/doc/html/property_tree/parsers.html#property_tree.parsers.xml_parser。关注限制。并非所有限制都明确存在(请参阅RadidXML文档)。
您知道我如何看待boost如何获得子节点或其他c ++解析器吗?
参见上面的第一个链接:)
也可以看看:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句