这是对的吗?阅读从xmlDocPtr
返回的xmlReadFile
可能会失灵(我假设libxml2
是SAX或DOM;它可能是它自己的东西)。
例如:
<!-- original document, in order -->
<xml>
<element>1</element>
<element>2</element>
<element>3</element>
</xml>
<!-- document as it appears in memory (DOM) -->
<xml>
<element>3</element>
<element>1</element>
<element>2</element>
</xml>
答案 0 :(得分:2)
libxml2支持DOM和SAX解析。它的DOM解析器实际上是在其SAX解析器之上构建的。因此DOM输出将保持文档顺序。我从来没有听说过重新排序XML节点的DOM解析器。
答案 1 :(得分:1)
虽然DOM我认为可以重新订购。
XML规范说XML元素的顺序很重要,因此任何XML API都应该维护元素的顺序。
作为附注,一次排序IS不重要是对属性的排序,例如<termdef id="dt-dog" term="dog"/>
可以<termdef term="dog" id="dt-dog"/>