Android并沒有提供對(duì)Java StAX API的支持志群。但是浑彰,Android附帶有一個(gè)pull解析器如迟,他的工作方式和StAX類似下隧。它允許用戶的應(yīng)用程序代碼從解析器中獲取事件奢人,這與SAX解析器自動(dòng)將事件推入處理程序相反谓媒。
PULL解析器的運(yùn)行方式類似于SAX解析器淆院,其模式都是基于事件。不同的是句惯,在PULL解析過(guò)程中返回的是數(shù)字土辩,且我們需要自己獲取產(chǎn)生的事件然后做相應(yīng)的操作,而不像SAX那樣由處理器觸發(fā)一種事件的方法抢野,執(zhí)行我們的代碼拷淘。
讀取到xml的聲明返回 START_DOCUMENT;
讀取到xml的結(jié)束返回 END_DOCUMENT ;
讀取到xml的開始標(biāo)簽返回 START_TAG
讀取到xml的結(jié)束標(biāo)簽返回 END_TAG
讀取到xml的文本返回 TEXT
PULL解析器小巧輕便,解析速度快指孤,簡(jiǎn)單易用启涯,非常適合在Android移動(dòng)設(shè)備中使用,Android系統(tǒng)內(nèi)部在解析各種XML時(shí)也是用PULL解析器恃轩,Android官方推薦開發(fā)者們使用Pull解析技術(shù)结洼。Pull解析技術(shù)是第三方開發(fā)的開源技術(shù),它同樣可以應(yīng)用于JavaSE開發(fā)叉跛。
PULL?的工作原理:XML pull提供了開始元素和結(jié)束元素松忍。當(dāng)某個(gè)元素開始時(shí),我們可以調(diào)用parser.nextText從XML文檔中提取所有字符數(shù)據(jù)筷厘。當(dāng)解釋到一個(gè)文檔結(jié)束時(shí)鸣峭,自動(dòng)生成EndDocument事件。
常用的XML pull的接口和類:
XmlPullParser:XML pull解析器是一個(gè)在XMLPULL VlAP1中提供了定義解析功能的接口。
XmlSerializer:它是一個(gè)接口乙各,定義了XML信息集的序列骡湖。
XmlPullParserFactory:這個(gè)類用于在XMPULL V1 API中創(chuàng)建XML Pull解析器。
XmlPullParserException:拋出單一的XML pull解析器相關(guān)的錯(cuò)誤莫换。