boost :: property_tree xml漂亮的打印,格式化

时间:2014-01-15 12:40:49

标签: 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我可以传递给解析器,但是没有一个能给我所期望的行为。

1 个答案:

答案 0 :(得分:6)

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