Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android創建與解析XML(一) 概述

Android創建與解析XML(一) 概述

編輯:Android開發教程

Android 是最常用的智能手機平台,XML 是數據交換的標准媒介,Android 中可以使用標准的XML生成器、解析器、轉換器 API,對 XML 進行解析和轉換。

XML,相關有DOM、SAX、JDOM、DOM4J、Xerces、JAXP等一堆概念,但是很多人總是會弄 混他們之間的關系,這對我們理解XML文件的創建和解析很不利。要挑選一個適合在Android平台上使用的XML解析方案,我們還 是得先把這些概念厘清。

XML基本概念

DOM(Document Object Model,文檔對象模型)和SAX(Simple API for XML, 簡單XML應用接口),是JAXP(Java API for XML Processing,Java XML處理的應用接口)定義的2種不同的對XML文檔進行分析 、處理的方法。

DOM方法是用標准對象模型表示 XML 文檔;SAX方法則使用事件模型來處理程序來處理XML。

JAXP 完成了對SAX、DOM的包裝,它向應用程序提供針對DOM的DocumentBuilderFactory、 DocumentBuilder;以及針對SAX的 SAXParserFactory、SAXParser抽象工廠類。在Jave SE中JAXP對應javax.xml.parsers包,DOM對應org.w3c.dom,SAX對應 org.xml.sax。

Xerces首先繼承並實現了javax.xml.parser包內的SAXParser、SAXParserFactory、DocumentBuilder、 DocumentBuilderFactory等抽象類,並提供了JAXP中所定義的DOM、SAX(以及StAX,後面會介紹)這些XML解析方法的實現和相 應的Parser。

JDOM和DOM4J,是因為有人覺得W3C的DOM標准API太過難用而著手開發的替代API,它們和JAXP一樣都是對DOM、 SAX的封裝,不過JDOM、DOM4J做了更多的事情,相當於上面提到JAXP接口+Xerces DOM實現部分。JDOM並沒有自己開發Parser, 所以還是需要利用Xerces的Parser部分,而DOM4J自帶一個名為Alfred2的Parser,當然也可以使用Xerces的Parser。看起來JAXP 具備更好的可移植性,即我們可以通過修改配置文件切換不同的DOM實現和SAX、DOM Parser,JDOM、DOM4J雖然也可以切換 Parser,但是DOM實現是無法切換的。(參考: Java XML API 漫談  和  JAXP全面介紹)

XML創建與解析

XML創建主要四種方式:Dom、Sax、Pull、Dom4j

XML解析主要四種方式:Dom、Sax、Pull、 Dom4j

其中,利用Dom、Sax、Pull、Dom4j創建的標准XML格式文件,可以由任何一種Dom、Sax、Pull、Dom4j解析方式進 行解析。

Android中解析XML

DOM解析器,是通過將XML文檔解析成樹狀模型並將其放入內存來完成解析工作的,然 後對文檔的操作都是在這個樹狀模型上完成的。這個在內存中的文檔樹將是文檔實際大小的幾倍。這樣做的好處是結構清晰、操 作方便,而帶來的麻煩就是極其耗費系統資源。

SAX解析器,正好克服了DOM的缺點,分析能夠立即開始,而不是等待所有的 數據被處理。而且,由於應用程序只是在讀取數據時檢查數據,因此不需要將數據存儲在內存中,這對於大型文檔來說是個巨大 的優點。事實上,應用程序甚至不必解析整個文檔,它可以在某個條件得到滿足時停止解析。

DOM與SAX比較

下面的表格列 出了SAX和DOM在一些方面的對照:

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved