我想知道 Android 中的 XML SAX 解析器、Pull 解析器和 DOM 解析器 之间的区别。在什么情况下,哪个在性能和实现上更好?
谢谢。 霍拜卜。
最佳答案
Dom 解析器 - 它使用基于对象 的方法。即,它首先将整个 XML 加载到内存中,将 XML 节点转换为对象,然后开始解析它们。所以,它相当慢。
SAX 和 PULL 解析器 - 它们使用基于事件的方法。两者在内存和性能方面几乎相同。但是,很少有关于何时使用它们的区分情况,如下所述。
Dom 解析器 - 当您需要在解析之前验证 整个 XML 时使用它。 当 XML 太大并且验证可能受到影响时,切勿使用它。 一旦开始解析,它就会从起始节点解析到结束节点。无法仅解析特定节点。
SAX - 当您想要解析整个 XML 时使用它。 一旦开始解析,它就会从起始节点解析到结束节点。无法仅解析特定节点。
PULL - 当您不想解析整个 XML 时使用它。它比 SAX 更容易实现,因为您不必维护解析器的状态。您可以只拉取您感兴趣的特定节点。
我的建议是 - 需要验证 - 选择 DOM,文件大小小 或者你不是对解析整个 XML 感兴趣 - 前往PULL,文件大小large 或者您需要解析 < strong>整个 XML 文件 - 转至 SAX。
关于android - Android 中 XML SAX 解析器、Pull 解析器和 DOM 解析器之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297273/