c++ - boost::property_tree xml pretty-print 、格式化

标签 c++ xml boost boost-propertytree

我正在关注 Five Minute Tutorial然后我得到文件 debug_settings_out.xml 作为输出(不出所料)。

但我的问题是,它的格式不正确。它看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<debug><filename>debug.log</filename><level>2</level></debug>

我希望它看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<debug>
    <filename>debug.log</filename>
    <level>2</level>
</debug>

因为它应该也可以手动编辑。 我怎样才能做到这一点?

我已经找到了 settings我可以传递给解析器,但它们都没有给我所需的行为。

最佳答案

PropertyTree 的文档非常糟糕(我最近开始改进它)。您需要做的是将正确的 xml_writer_settings 对象传递给 write_xml。

https://github.com/boostorg/property_tree/blob/master/include/boost/property_tree/detail/xml_parser_writer_settings.hpp

write_xml(filename, tree, std::locale(),
          xml_writer_make_settings(' ', 4));

关于c++ - boost::property_tree xml pretty-print 、格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21137712/

相关文章:

c++ - 用模板实现派生类

python - 为什么 etree.tostring() 不适用于不同的方法?

c++ - 如何保持 boost asio async 连续读取事件

c++ - 为什么 std::istreambuf_iterator 无法进行 boost SinglePass Iterator 概念检查?

c++ - 实时视频捕捉?

c++ - 解析通过 netcat 发送的字节

xml - PowerShell - 格式化 XML 输出

c++ - 获取反转的 boost 图的拷贝

c++ - 将其 move 到 map 后访问一对

XML文件和&字符?