【发布时间】:2023-03-07 12:51:01
【问题描述】:
我正在使用 boost::property_tree 在我的应用程序中读取和写入 XML 配置文件。 但是当我编写文件时,输出看起来有点难看,文件中有很多空行。 问题是它也应该由人类编辑,所以我想获得更好的输出。
作为一个例子,我写了一个小测试程序:
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
int main( void )
{
using boost::property_tree::ptree;
ptree pt;
// reading file.xml
read_xml("file.xml", pt);
// writing the unchanged ptree in file2.xml
boost::property_tree::xml_writer_settings<char> settings('\t', 1);
write_xml("file2.xml", pt, std::locale(), settings);
return 0;
}
file.xml 包含:
<?xml version="1.0" ?>
<config>
<net>
<listenPort>10420</listenPort>
</net>
</config>
运行程序后file2.xml包含:
<?xml version="1.0" encoding="utf-8"?>
<config>
<net>
<listenPort>10420</listenPort>
</net>
</config>
除了手动通过输出和删除空行之外,有没有更好的输出方法?
【问题讨论】:
-
boost::property_tree 使用名为 RapidXML 的 XML 解析器 rapidxml.sourceforge.net。 boost::property_tree 和 RapidXML 都由 Marcin Kalicinski 维护。建议你直接联系他。您可以在 RapidXML 主页上找到他的邮件地址。
-
感谢 ildjarn 的编辑,但这里的空行是有原因的!顺便问一下维护者的问题,如果有我会发布答案
标签: c++ boost boost-propertytree