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 >());