我使用带有C的libxml2来解析XML格式的const char *
。当我为此字符串创建xmlDocPtr
时(使用xmlReadMemory(..)
),生成的xmlDocPtr
不会以原始格式保留空节点(<tag></tag>
)。它将每个对合并为一个标记(<tag/>
)。就我而言,它正在制造问题。
有没有办法以原始形式保存这些空节点?
我看到了&#39;选项&#39; xmlReadMemory()
中的参数,但不确定我是否可以将其用于此目的。
答案 0 :(得分:0)
它将每个对合并为一个标记()。就我而言,它正在制造问题。
对于它的价值,它依赖于XML无法保证的东西。规范说,&#34;空元素的表示形式是一个开始标记,紧跟一个结束标记,或一个空元素标记。&#34;
https://www.w3.org/TR/REC-xml/#sec-starttags
任何符合要求的XML解析器都应该看到任何一种表示形式。我不知道是否有可能改变依赖它的代码,但这将是最正确的&#34;正确的&#34;溶液
我知道有时这些事情是我们无法控制的,只是想提出这个想法。