Android 创建与解析XML(六)—— 比较与使用

简介:

http://blog.csdn.net/sunboy_2050/article/details/7521668



几种解析技术的比较与总结:  

对于Android的移动设备而言,因为设备的资源比较宝贵,内存是有限的,所以我们需要选择适合的技术来解析XML,这样有利于提高访问的速度。

1 DOM在处理XML文件时,将XML文件解析成树状结构并放入内存中进行处理。当XML文件较小时,我们可以选DOM,因为它简单、直观。

2 SAX则是以事件作为解析XML文件的模式,它将XML文件转化成一系列的事件,由不同的事件处理器来决定如何处理。XML文件较大时,选择SAX技术是比较合理的。虽然代码量有些大,但是它不需要将所有的XML文件加载到内存中。这样对于有限的Android内存更有效,而且Android提供了一种传统的SAX使用方法以及一个便捷的SAX包装器。 使用Android.util.Xml类,从示例中可以看出,会比使用 SAX来得简单。

3 XML pull解析并未像SAX解析那样监听元素的结束,而是在开始处完成了大部分处理。这有利于提早读取XML文件,可以极大的减少解析时间,这种优化对于连接速度较漫的移动设备而言尤为重要。对于XML文档较大但只需要文档的一部分时,XML Pull解析器则是更为有效的方法。


Android系统中XML解析方案的选择:

DOM解析器是通过将XML文档解析成树状模型并将其放入内存来完成解析工作的,而后对文档的操作都是在这个树状模型上完成的。这个在内存中的文档树将是文档实际大小的几倍。这样做的好处是结构清除、操作方便,而带来的麻烦就是极其耗费系统资源。而SAX正好克服了DOM的缺点,分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中,这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。

选择何种解析技术,这取决于下面几个因素:

⑴ 应用程序的目的:如果打算对数据作出更改并将它输出为 XML,那么在大多数情况下,DOM 是适当的选择。并不是说使用 SAX和PULL 就不能更改数据,但是该过程要复杂得多,因为您必须对数据的一份拷贝而不是对数据本身作出更改。

⑵ 数据容量: 对于大型文件,SAX和PULL 是更好的选择。

⑶ 数据将如何使用:如果只有数据中的少量部分会被使用,那么使用 SAX,PULL来将该部分数据提取到应用程序中可能更好。另一方面,如果您知道自己以后会回头引用已处理过的大量信息,那么 SAX,PULL也许不是恰当的选择。

⑷ 对速度的需要: SAX,PULL实现通常要比 DOM 实现更快。

⑸ 为了能动态给xml添加节点:使用DOM。

⑹ 在SAX和PULL都可以使用的情况下,建议使用PULL来解析。


相关文章
|
15天前
|
XML 存储 JSON
51. 【Android教程】JSON 数据解析
51. 【Android教程】JSON 数据解析
27 2
|
2天前
|
XML Web App开发 JavaScript
XML DOM 解析器
**XML DOM解析器摘要:** XML解析器在浏览器中常内置,用于将XML转换为JavaScript对象,便于通过DOM API操作。加载XML文档如`books.xml`,使用XMLHttpRequest或ActiveXObject创建请求,打开连接,发送请求,然后将响应转换为DOM对象,如`xmlDoc=xhttp.responseXML`。
|
2天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM解析器是内置在多数浏览器中的工具,用于将XML转换为JavaScript可操作的对象。它允许遍历、访问和修改XML结构。浏览器通过XMLHttpRequest加载XML文档到DOM,如以下JS示例所示: ```markdown - 创建XMLHttpRequest对象 - 打开GET请求到"books.xml" - 发送请求 - 响应被转换为`responseXML`,成为DOM对象 ``` 这段代码展示了如何在不同浏览器间兼容地加载XML文档。
|
4天前
|
XML Web App开发 JavaScript
XML DOM 解析器
**XML DOM解析器将XML转换为JavaScript对象,允许在浏览器中操作XML。
|
4天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM解析器是浏览器内置的功能,用于将XML转换为JavaScript对象以便操作。通过XMLHttpRequest对象,如`xhttp.open()`和`xhttp.send()`发送请求获取XML文件,然后`responseXML`属性将返回的XML转换为DOM,允许通过JavaScript遍历和修改XML结构。
|
5天前
|
XML Web App开发 JavaScript
XML DOM 解析器
浏览器内置的XML解析器将XML转换为JavaScript可访问的DOM对象,允许遍历、操作XML节点。通过XMLHttpRequest加载XML文档,如示例所示,创建XMLHTTP对象,打开并发送GET请求到服务器,然后将响应解析为XML DOM。
|
6天前
|
XML JavaScript 关系型数据库
Python XML 解析
Python XML 解析
|
8天前
|
搜索推荐 Android开发 iOS开发
深入解析安卓与iOS操作系统的异同
安卓和iOS是目前两大主流移动操作系统,它们分别代表了开放性和封闭性的设计理念。本文将从系统架构、用户界面、应用生态等方面深入探讨安卓和iOS之间的异同,帮助读者更好地理解这两个操作系统的特点和优势。
21 3
|
8天前
|
XML Web App开发 JavaScript
XML DOM 解析器
浏览器内置XML解析器将XML转换为JavaScript可操作的DOM对象。通过XMLHttpRequest或ActiveXObject加载XML文档,如"books.xml",转化为DOM后,才能使用JavaScript进行访问和操作。示例代码展示了如何使用XMLHttpRequest加载XML文档并将其响应设为DOM对象。
|
10天前
|
XML Web App开发 JavaScript
XML DOM 解析器
浏览器内置的XML解析器将XML转换为XML DOM,便于JavaScript操作。通过XMLHttpRequest或ActiveXObject加载XML文档,如示例所示,创建HTTP请求获取"books.xml",然后将响应解析为DOM对象。