其中的区别:SAXparsing器,XPath,DOM,XMLPullParser

我想知道上述四种types(SAXPaser,XPath,DOM,XMLPullParse)之间的区别,以及我们应该在什么时候使用它们。

Solutions Collecting From Web of "其中的区别:SAXparsing器,XPath,DOM,XMLPullParser"

SAXparsing是比DOM更好的实现,请看下面两者之间的区别:

DOM

节点以树结构存储器的forms存在:占用更多的内存,DOM只在小XML文档的情况下被优先考虑在运行时更慢存储为对象编程易于实现易于导航和使用。

SAX

事件序列它不使用任何大型文档的首选内存。 因为上面提到的点,在运行时更快。 对象将被创build。 需要编写用于创build对象的代码在SAX中向后导航是不可能的,因为它按顺序处理文档

所以,如果你有非常大的文件,那么你应该使用SAXparsing器,因为它会触发事件并释放它们,没有任何东西存储在内存中,并且使用SAXparsing器不能以随机方式访问元素,所以不会返回! ,但Dom允许您访问xml文件的任何部分,因为它将整个文件/文档保存在内存中。

看到这篇文章 ,你可以通过阅读摘要得到你想要的。

也检查这个链接来查看不同的XMLparsing器的性能

在这里输入图像说明

请检查下面的链接…

http://steveliles.github.com/comparing_methods_of_xml_parsing_in_android.html

http://xjaphx.wordpress.com/2011/11/01/android-xml-adventure-compare-xml-parsers/

http://www.ibm.com/developerworks/opensource/library/x-android/index.html

http://www.developer.com/ws/android/development-tools/Android-XML-Parser-Performance-3824221-2.htm

http://www.geekinterview.com/question_details/12797

(按照上述条款)

SAX和DOM都用于parsingXML文档。 两者都有优点和缺点,可以根据具体情况在我们的编程中使用

SAX:

  1. 逐节点parsing
  2. 不将XML存储在内存中
  3. 我们不能插入或删除一个节点
  4. 自顶向下遍历

DOM

  1. 处理之前将整个XML文档存储到内存中
  2. 占用更多的内存
  3. 我们可以插入或删除节点
  4. 沿任何方向遍历。

如果我们需要find一个节点,并且不需要插入或删除,我们可以使用SAX本身,否则DOM提供了更多的内存。

DOM

节点以树结构存储器的forms存在:占用更多的内存,DOM只在小XML文档的情况下被优先考虑。将整个XML文档存储到内存中以便在处理时运行速度更慢存储为对象编程方便易于实现易的导航和使用,可以在任何方向上移动。 我们可以插入或删除,修改节点。

SAX:当你想访问XML时使用(不能改变XML)

事件序列它没有使用任何大型文档的首选内存。由于上面提到的要点,在运行时更快处理之前,不要将XML存储在内存中。 对象将被创build。 需要编写用于创build对象的代码在SAX中向后导航是不可能的,因为它按顺序处理文档,从上到下遍历我们不能插入或删除一个节点

XPATH:当你只需要XML文档中的一些值时,Xpath就很有用,而且你知道在哪里可以find它们(你知道data./root/item/challange/text的path)

XMLPullParser:快速,需要更less的DOM内存

资料来源: http : //www.time2ask.com/ http://www.time2ask.com/Android/The-difference-among-SAX-ParserXPathDOMXMLPullParser/_2361836