我正在使用boost :: property_tree在我的应用程序中读取和写入XML配置文件。 但是,当我写文件的输出看起来很丑陋,文件中有很多空行。 问题是,它应该由人类编辑,所以我想获得更好的输出。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,http://rapidxml.sourceforge.net/ XML解析器。 boost :: property_tree和RapidXML均由Marcin Kalicinski维护。我建议你直接与他联系。您可以在RapidXML主页上找到他的邮件地址。 – user763305
感谢ildjarn的编辑,但空行在这里是有原因的!顺便说一句问问题的维护者,我会后的答案,如果有一个 – foke