天天看點

Xml解析

比較DOM、SAM、PULL?

DOM:

消耗記憶體:先把xml文檔都讀到記憶體中,然後再用DOM JAVASE來通路樹形結構,并擷取資料。這個寫起來很簡單,但是很消耗記憶體。要是資料過大,手機不夠牛逼,可能手機直接當機

SAX:

解析效率高,占用記憶體少,基于事件驅動的:更加簡單地說就是對文檔進行順序掃描,當掃描到文檔(document)開始與結束、元素(element)開始與結束、文檔(document)結束等地方時通知事件處理函數,由事件處理函數做相應動作,然後繼續同樣的掃描,直至文檔結束

PULL:

與SAX類似,也是基于事件驅動,我們可以調用它的next()方法,來擷取下一個解析事件(就是開始文檔,結束文檔,開始标簽,結束标簽),當處于某個元素時可以調用XmlPullParser的getAttribute()方法來擷取屬性的值,也可調用用它的nextText()擷取本節點的值