溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android平臺下常見的XML解析有哪些

發(fā)布時間:2021-09-17 14:42:38 來源:億速云 閱讀:140 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關Android平臺下常見的XML解析有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

XML在各種開發(fā)中都廣泛應用,Android也不例外。作為承載數(shù)據(jù)的一個重要角色,如何讀寫XML成為Android開發(fā)中一項重要的技能。今天就由我向大家介紹一下在Android平臺下幾種常見的XML解析和創(chuàng)建的方法。

在Android中,常見的XML解析器分別為SAX解析器、DOM解析器和PULL解析器,下面,我給大家做詳細的介紹。

SAX解析器:

SAX(Simple API for XML)解析器是一種基于事件的解析器,它的核心是事件處理模式,主要是圍繞著事件源以及事件處理器來工作的。當事件源產生事件后,調用事件處理器相應的處理方法,一個事件就可以得到處理。在事件源調用事件處理器中特定方法的時候,還要傳遞給事件處理器相應事件的狀態(tài)信息,這樣事件處理器才能夠根據(jù)提供的事件信息來決定自己的行為。

SAX解析器的優(yōu)點是解析速度快,占用內存少。非常適合在Android移動設備中使用。

DOM解析器:

DOM是基于樹形結構的的節(jié)點或信息片段的集合,允許開發(fā)人員使用DOM API遍歷XML樹、檢索所需數(shù)據(jù)。分析該結構通常需要加載整個文檔和構造樹形結構,然后才可以檢索和更新節(jié)點信息。

由于DOM在內存中以樹形結構存放,因此檢索和更新效率會更高。但是對于特別大的文檔,解析和加載整個文檔將會很耗資源。

PULL解析器:

PULL解析器的運行方式和SAX類似,都是基于事件的模式。不同的是,在PULL解析過程中,我們需要自己獲取產生的事件然后做相應的操作,而不像SAX那樣由處理器觸發(fā)一種事件的方法,執(zhí)行我們的代碼。PULL解析器小巧輕便,解析速度快,簡單易用,非常適合在Android移動設備中使用,Android系統(tǒng)內部在解析各種XML時也是用PULL解析器。

在Android中,首推當然就是pull解析器了。PULL解析器小巧輕便,解析速度快,簡單易用,非常適合在Android移動設備中使用,Android系統(tǒng)內部在解析各種XML時也是用PULL解析器,Android官方推薦開發(fā)者們使用Pull解析技術。Pull解析技術是第三方開發(fā)的開源技術,它同樣可以應用于JavaSE開發(fā)。

PULL 的工作原理:

XML pull提供了開始元素和結束元素。當某個元素開始時,可以調用parser.nextText從XML文檔中提取所有字符數(shù)據(jù)。當解析到一個文檔結束時,自動生成EndDocument事件。

常用的XML pull的接口和類:

XmlPullParser:該解析器是一個在org.xmlpull.v1中定義的解析功能的接口。

XmlSerializer:它是一個接口,定義了XML信息集的序列。

XmlPullParserFactory:這個類用于在XMPULL V1 API中創(chuàng)建XML Pull解析器。

XmlPullParserException:拋出單一的XML pull解析器相關的錯誤。

PULL解析器的運行方式和SAX類似,都是基于事件的模式。

不同的是,在PULL解析過程中返回的是數(shù)字,且我們需要自己獲取產生的事件然后做相應的操作,而不像SAX那樣由處理器觸發(fā)一種事件的方法,執(zhí)行我們的代碼:

讀取到xml的聲明返回 START_DOCUMENT; 結束返回 END_DOCUMENT ; 開始標簽返回 START_TAG;

結束標簽返回 END_TAG; 文本返回 TEXT。

最后對這3個解析技術做個比較與總結:
對于Android的移動設備而言,因為設備的資源比較寶貴,內存是有限的,所以我們需要選擇適合的技術來解析XML,這樣有利于提高訪問的速度。

DOM在處理XML文件時,將XML文件解析成樹狀結構并放入內存中進行處理。當XML文件較小時,我們可以選DOM,因為它簡單、直觀。

SAX則是以事件作為解析XML文件的模式,它將XML文件轉化成一系列的事件,由不同的事件處理器來決定如何處理。XML文件較大時,選擇SAX技術是比較合理的。雖然代碼量有些大,但是它不需要將所有的XML文件加載到內存中。這樣對于有限的Android內存更有效,而且Android提供了一種傳統(tǒng)的SAX使用方法以及一個便捷的SAX包裝器。 使用Xml類,會比使用 SAX來得簡單。

XML pull解析并未像SAX解析那樣監(jiān)聽元素的結束,而是在開始處完成了大部分處理。這有利于提早讀取XML文件,可以極大的減少解析時間,這種優(yōu)化對于連接速度較漫的移動設備而言尤為重要。對于XML文檔較大但只需要文檔的一部分時,XML Pull解析器則是更為有效的方法。

關于“Android平臺下常見的XML解析有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI