在android中有DOM,SAX和XmlPull解析等方法。我如何决定在特定情况下必须使用哪种解析?请在特定情况下建议哪一个更优化
答案 0 :(得分:4)
我正在向您提供有关SAX和Dom Parser的一些信息。
Java中的SAX XML解析器
SAX代表XML解析的简单API。这是一个基于事件的XML Parsing,它逐步解析XML文件,非常适合大型XML文件。 SAX XML Parser在遇到打开标记,元素或属性时触发事件,并且解析相应地工作。建议使用SAX XML解析器来解析Java中的大型xml文件,因为它不需要在Java中加载整个XML文件,并且它可以读取一小部分的大型XML文件。 Java提供了对SAX解析器的支持,您可以使用SAX Parser解析Java中的任何xml文件,我已经介绍了使用SAX Parser读取xml文件的示例。在java中使用SAX Parser的一个缺点是,使用SAX Parser在Java中读取XML文件需要比DOM Parser更多的代码。
DOM和SAX XML Parser之间的差异以下是Java解析器和Java中的SAX Parser之间的高级差异:
1)DOM解析器在内存中加载整个xml文档,而SAX只在内存中加载一小部分XML文件。
2)DOM解析器比SAX更快,因为它可以访问内存中的整个XML文档。
3)Java中的SAX解析器比DOM Parser更适合大型XML文件,因为它不需要太多内存。
4)DOM解析器适用于文档对象模型,而SAX是基于事件的xml解析器。
这完全取决于Java中的SAX和DOM解析器之间的区别,现在由您决定选择哪种XML解析器。如果XML文件足够小,我建议在SAX解析器上使用DOM解析器,如果您不知道要处理的xml文件的大小或者它们很大,请使用SAX解析器。
还有用于XML解析的XMLPullParser,但我对此没有更多的了解,因为我没有使用它。