pugixml - 使用 pugixml 保留空文本标签

标签 pugixml

我正在尝试使用 pugixml 修改 xml 配置,通过 boost::serialization 创建并由其他应用程序使用,因此我只需要更改文档的几个片段并保持所有其他部分相同。

一些节点可能以<value></value>的形式存储空字符串.加载并保存(使用 pugi)后,此节点变为 <value /> .在此之后 boost::serialization 无法解析此类文件。

加载选项 parse_ws_pcdata_singleparse_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/

相关文章:

c++ - pugixml - 获取所有文本节点 (PCDATA),而不仅仅是第一个

c++ - 使用 pugiXML 提取文本标签中的段落

c++ - Pugixml C++解析XML

c++ - 是否有语法类似于 pugixml 的 MIT JSON 解析器?

xml-parsing - pugixml 子节点数

c++ - 比较时返回节点信息

c++ - 使用pugixml将xml namespace 添加到xml_document

c++ - 使用 PugiXML 进行 XML 解析,无限循环

c++ - MFC 文件创建不能与 pugixml 一起正常工作

c++ - Pugixml:找不到文档元素