使用Boost PTree w / o标签解析XML

Alexia M.

我想知道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 ++解析器吗?

参见上面的第一个链接:)

也可以看看:

  • 在我的答案中搜索“不是xml库”
  • 同理,任何使用XML的“属性树”答案-请注意,我们从不指定要读取的节点-因为这根本不可能。许多答案详细说明了如何通过某种动态路径查找节点,如果那正是您真正要寻找的
  • 我的一些使用PugiXML的答案-其中大多数是对Boost属性树无法处理的问题的回答
  • 其他一些库TinyXMLRapidXML只是为了了解它们何时合适/不合适

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Boost Ptree的XML版本和编码

使用Boost :: Ptree的JSON数组

结束标签XML验证在Boost ptree中读取XML不正确

如何使用 boost ptree 解析像 chinese 这样的宽字节字符串?boost 版本是 boost_1_64_0

从boost :: property_tree :: ptree :: iterator获取ptree

如何手动创建具有不同XML属性的boost ptree?

如何使用C ++将Boost ptree插入MongoDB

使用boost ptree将std :: list序列化为json

C ++ Boost Ptree重命名键

Boost 属性 ptree:boost write_xml 在 xml 文件的子元素中添加 unicode 0x0 字符

使用反向迭代器增强ptree失败

如何使用boost :: any_range加入多个boost范围并从w / o函数返回结果

为什么使用CTSectPr.Factory.parse方法解析xml标签会出现两个<w:sectPr>标签嵌套

移动boost :: property_tree :: ptree的构造函数

Boost ptree get <std :: string>()返回不可打印的字符?

这个boost ptree块可以更短(更聪明)吗?

Boost :: ptree-访问列表中包含的属性树节点

使用boost :: property_tree :: ptree如何获取特定键的值

使用boost :: property_tree :: ptree将注释写入ini文件

遍历没有标签名称的PTree子项

使用boost进行xml解析

嘗試使用 Boost C++ 從 JSON ptree 檢索值時出現未處理的異常

boost :: property_tree :: ptree访问数组的第一个复杂元素

我想从Boost库的ptree类型数据中删除最后一个元素

boost ptree add_child创建不需要的嵌套元素

使用Boost读取xml

使用w图像标签的响应图像

如何使用 XmlObject.Factory.parse 方法解析多个 <w:p> 标签

无法使用Python从XML解析标签