Android:解析 XML 数据的最佳解析器 [关闭]

Posted

技术标签:

【中文标题】Android:解析 XML 数据的最佳解析器 [关闭]【英文标题】:Android: Best parser to parse XML data [closed] 【发布时间】:2013-03-14 13:41:48 【问题描述】:

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

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

    萨克斯 XMLPullParsing DOM

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

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

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

【问题讨论】:

使用 sax 或 xmlpullparsing。 如果文件大小合理,试试dom。如果它不适合核心,请使用萨克斯。向我们展示您的架构并告诉我们您正在使用数据做什么 表示 sax 如果好,然后 dom 表示大量数据,但请告诉我有关 xmlpullparser 的信息。 sax 和 xmlpull 中最好的。 【参考方案1】:

SAX 解析是比 DOM 实现的最好的解析。看看这两者之间的区别如下:

DOM

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

SAX

事件的顺序。 它不使用任何内存来存储大型文档。 由于上述几点,运行时更快。 要创建对象。 需要编写代码来创建对象。 在 SAX 中向后导航是不可能的,因为它是按顺序进行的 处理文档。

【讨论】:

+1。这是一个很好的比较。我要强调的是,SAX 更难实现,因为程序员必须单步执行节点。但是,它速度更快,使用的内存更少,并且更适合大型 XML 数据集或流式 XML 数据。【参考方案2】:

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

【讨论】:

抱歉,SAX 解析器的自关闭标签 有问题,您有什么解决方案吗?【参考方案3】:

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

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

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

还有另一个可能读入SAX parser vs XMLPull parser的答案

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于Android:解析 XML 数据的最佳解析器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用于操作/编辑现有 xml 文档的最佳 java Xml 解析器

Android之解析XML格式数据

什么是 C++ 的最佳开放 XML 解析器? [复制]

xml 使用 sax 解析器从子标签解析数据

Android中三种常用解析XML的方式(DOMSAXPULL)简介及区别

android中XML SAX解析器、Pull解析器和DOM解析器的区别