添加 xml-评论到 boost::property_tree

Adding xml-comments to boost::property_tree

我正在使用 boost::property_tree::xml_parser 创建一个 xml 文件。现在我还需要在 xml 文件中添加注释。

我做了一些研究,发现 JSON 中不允许评论,因此 boost::property_tree::json_parser...

也不支持评论

此外,我发现,在阅读 xml-文件时,有一个 no_comments 标志用于跳过 xml-评论...

但是向文件添加 xml 注释呢?

如果没有使用上述标志禁用注释,它们将表示为名为 <xmlcomment> 的节点(就像属性位于名为 <xmlattr> 的节点下一样):

Live On Coliru

#include <boost/property_tree/xml_parser.hpp>
#include <iostream>

int main() {
    boost::property_tree::ptree pt;
    pt.put("some.node.<xmlattr>.attr1", "value1");
    pt.put("some.node.<xmlcomment>", "\nEhffvna Jnefuvc\nTb Shpx Lbhefrys\n");

    write_xml(std::cout, pt);
}

打印

<?xml version="1.0" encoding="utf-8"?>
<some><node attr1="value1"><!--
Ehffvna Jnefuvc
Tb Shpx Lbhefrys
--></node></some>