6

我正在开发一个应用程序,我第一次将在其中解析来自远程服务器的 xml 文件中的数据。

但是我无法选择哪个解析器是高效的或最适合解析的。因为主要有三种类型的解析,我知道:

  1. 萨克斯
  2. XMLPull解析
  3. DOM

哪个是解析数据的最佳解析器?正如我在谷歌上搜索并发现上述解析器的正反两面。但我无法确定哪个是最有效的。

XML 包含带有大量标签的大量数据。

请指导我并建议我应该使用哪个解析器,因为我是第一次在我的应用程序中使用解析。

4

4 回答 4

18

SAX Parsing 是比 DOM 实现的最好的一种。在下面查看这两者之间的区别:

DOM

  • 节点采用树结构的形式。
  • 内存:占用更多内存,DOM 仅在 XML 文档较小的情况下优先使用。
  • 运行时较慢。
  • 存储为对象。
  • 以编程方式易于实现。
  • 易于导航和使用。

萨克斯

  • 事件顺序。
  • 它不使用大型文档首选的任何内存。
  • 由于上述几点,运行时更快。
  • 对象将被创建。
  • 需要编写代码来创建对象。
  • 在 SAX 中,向后导航是不可能的,因为它按顺序处理文档。
于 2013-03-25T06:10:55.277 回答
9

在所有 XML 解析器中,Sax 解析器是最快的,因此您可以毫无疑问地使用它……如果您需要从 XML 读取和写入数据,您可以使用 DOM。使用 SAX 解析器,您将只能从 XML 中读取数据。由于这两个在列表的顶部,因此您无需考虑 XMLPullparser。

于 2013-03-25T06:24:16.897 回答
1

我会说 XMLPullParsing,但我最近听到了有关Xerces的好消息,可能也想研究一下。但是,从未使用过 Xerces 和 XMLPullParser 从来没有让我失望过。我们构建了一个使用它的色盲应用程序,它会提取数千种颜色组合,以便告诉您刚刚拍摄的照片是什么颜色。

更新:如果您不介意阅读,这里有几个链接可供阅读:p,显示双方的利弊

http://www.firstobject.com/xml-reader-sax-vs-xml-pull-parser.htm

另一个可能读入SAX 解析器与 XMLPull 解析器的答案

于 2013-03-25T06:14:26.613 回答
0

我认为 XMLPullParser 将是一个不错的选择,正如他们在Android 文档中提到的那样。

于 2015-04-30T09:24:22.243 回答