xmlReadMemory不保留原始格式的空节点

时间:2018-03-16 08:33:51

标签: c linux libxml2

我使用带有C的libxml2来解析XML格式的const char *。当我为此字符串创建xmlDocPtr时(使用xmlReadMemory(..)),生成的xmlDocPtr不会以原始格式保留空节点(<tag></tag>)。它将每个对合并为一个标记(<tag/>)。就我而言,它正在制造问题。 有没有办法以原始形式保存这些空节点? 我看到了&#39;选项&#39; xmlReadMemory()中的参数,但不确定我是否可以将其用于此目的。

1 个答案:

答案 0 :(得分:0)

  

它将每个对合并为一个标记()。就我而言,它正在制造问题。

对于它的价值,它依赖于XML无法保证的东西。规范说,&#34;空元素的表示形式是一个开始标记,紧跟一个结束标记,或一个空元素标记。&#34;

https://www.w3.org/TR/REC-xml/#sec-starttags

任何符合要求的XML解析器都应该看到任何一种表示形式。我不知道是否有可能改变依赖它的代码,但这将是最正确的&#34;正确的&#34;溶液

我知道有时这些事情是我们无法控制的,只是想提出这个想法。