Boost库的XML处理: read_xml() 和 write_xml()

read_xml() 和 write_xml()

1.PropertyTree

官方文档:https://www.boost.org/doc/libs/1_60_0/doc/html/property_tree.html

属性树库提供了一个数据结构,存储任意深嵌入的值树,按某个密钥在每个级别索引。树的每个节点都存储着它自己的价值,外加一个订单列表,列出它的子节点及其键。树允许通过路径轻松访问其任何节点,这是多个键的串联。此外,库还提供解析器和生成器,用于各种数据格式,这些格式可以由此类树表示,包括 XML、INI 和 JSON。属性树是多功能的数据结构,但特别适合保留配置数据。树提供自己的,树特定的界面,每个节点也是一个STL兼容序列为其子节点。

2.XML Parser

官方文档:https://www.boost.org/doc/libs/1_60_0/doc/html/property_tree/parsers.html#property_tree.parsers.xml_parser

XML 格式是以文本形式存储信息的行业标准。不幸的是,截至本文撰写时,Boost中还没有 XML 解析器。因此,该库包含快速和微小的RapidXML解析器,以提供 XML 解析支持。
XML/属性树转换模式(和):read_xml() 和 write_xml()

read_xml()

https://www.boost.org/doc/libs/1_60_0/doc/html/boost/property_tree/xml_parser/read_xml_idm45506995203264.html

描述:从输入流中读取 XML 并将其转换为属性树。
参数1:flags:

  • no_concat_text 防止将文本节点连接到属性树的数据串中。将它们放在单独的字符串中
  • no_comments 跳过XML注释。
  • trim_whitespace 从文本中修剪前导和尾随的空白,并折叠空白序列。
  • 参数2:pt: 要填充的属性树。
    参数3:stream: 从属性树中读取的流。

    示例

    // In header: <boost/property_tree/xml_parser.hpp>
    
    template<typename Ptree> 
      void read_xml(std::basic_istream< typename Ptree::key_type::value_type > & stream, 
                    Ptree & pt, int flags = 0);
    

    write_xml()

    https://www.boost.org/doc/libs/1_60_0/doc/html/boost/property_tree/xml_parser/write_xm_idm45507092216384.html

    描述:将属性树转换为XML,并将其写入给定的输出流。
    参数1:pt:要转换为XML并输出的属性树。
    参数2:settings:将属性树作为XML写出来时要使用的设置。
    参数3:stream:要向其编写属性树的XML表示的流。

    示例

    // In header: <boost/property_tree/xml_parser.hpp>
    
    template<typename Ptree> 
      void write_xml(std::basic_ostream< typename Ptree::key_type::value_type > & stream, 
                     const Ptree & pt, 
                     const xml_writer_settings< typename Ptree::key_type > & settings = xml_writer_settings< typename Ptree::key_type >());
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值