我正在尝试使用 pugixml 修改 xml 配置,通过 boost::serialization 创建并由其他应用程序使用,因此我只需要更改文档的几个片段并保持所有其他部分相同。
一些节点可能以<value></value>
的形式存储空字符串.加载并保存(使用 pugi)后,此节点变为 <value />
.在此之后 boost::serialization 无法解析此类文件。
加载选项 parse_ws_pcdata_single
和 parse_ws_pcdata
仅当中间有空白时才有效。
我没有在 <value></value>
表格中找到用于保存空节点的保存选项也是。
有什么方法可以保留开始和结束标签之间的文本为零吗?
最佳答案
没有现成的选项。
更改 pugixml 以输出您需要的 XML 很容易(可能比修复 boost::serialization 更容易...):
在 pugixml.cpp 大约第 3249 行,有这段代码:
else if (!node.first_child())
writer.write(' ', '/', '>', '\n');
如果您使用缩进格式,只需删除这两行(如果您使用 format_raw,则上面有类似的代码)。
关于pugixml - 使用 pugixml 保留空文本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24066473/