gpt4 book ai didi

c++ - libxml2 是否维护文档顺序?

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:57 25 4
gpt4 key购买 nike

IIRC,有两种 XML 解析器:DOM 和 SAX。 SAX 需要从上到下解析 XML 文档而无需任何形式的重新排序(并且是基于事件的),而 DOM 我相信 允许重新排序。

这样对吗?并且读取从 xmlReadFile 返回的 xmlDocPtr 可能会乱序(我假设 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>

最佳答案

libxml2 同时支持 DOM 和 SAX 解析。它的 DOM 解析器实际上构建在其 SAX 解析器之上。所以 DOM 输出将保持文档顺序。我从未听说过 DOM 解析器对 XML 节点进行重新排序。

关于c++ - libxml2 是否维护文档顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14211171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com