使用Boost属性树来替换DOM解析器

问题描述:

我需要使用Boost属性树来编写XML解析器,该树可以替换现有的MSXML DOM解析器。基本上我的代码应该返回子节点的列表,子节点的数量等。这可以通过使用Property Tree来实现吗?例如。 GetfirstChild()的selectNodes(),GETLENGTH()等。使用Boost属性树来替换DOM解析器

我看到很多与Boost Property Tree相关的API,但文档看起来似乎是最低限度和令人困惑的。到目前为止,我能够使用BOOST_FOREACH解析整个XML。但是,每个节点的路径都是硬编码的,不符合我的目的。

boost :: property_tree可用于解析XML,它是一棵树,因此您可以将其用作XML DOM替换,但该库并非旨在成为完全成熟的XML解析器,并且不会成为XML标准的抱怨。例如,它可以成功解析非格式化的XML输入,并且不支持某些XML功能。所以这是你的选择 - 如果你想简单的XML配置的简单接口,那么是的,你应该使用boost :: property_tree