我尝试使用boost::property_tree::read_xml
和write_xml
从xml文件中复制并生成具有相同内容的新xml文件。我发现的问题是这个write_xml
函数总是生成不需要的空标记。例如,如果原始内容是:
<a></a>
输出将变为:
<a/>
所以我可以更改boost::property_tree::xml_writer_settings
以避免空标记。
提前致谢。
答案 0 :(得分:1)
您可以查看图书馆的来源。我比较了两个版本1.47和1.66,两个版本的实现是相同的,如下所示
// Write element
if (pt.data().empty() && pt.empty()) // Empty key
{
if (indent >= 0)
{
write_xml_indent(stream,indent,settings);
stream << Ch('<') << key <<
Ch('/') << Ch('>');
if (want_pretty)
stream << Ch('\n');
}
}
else // Nonempty key
所以答案是否定的,使用xml_writer_settings
您无法更改编写空标记,格式始终为<KEY/>
。