3 SAX解析原理
DOM會(huì)一行一行的讀取XML文檔,最終會(huì)把XML文檔所有數(shù)據(jù)存放到Document對(duì)象中。SAX也是一行一行的讀取XML文檔,但是當(dāng)XML文檔讀取結(jié)束后,SAX不會(huì)保存任何數(shù)據(jù),同時(shí)整個(gè)解析XML文檔的工作也就結(jié)束了。
但是,SAX在讀取一行XML文檔數(shù)據(jù)后,就會(huì)給感興趣的用戶一個(gè)通知!例如當(dāng)SAX讀取到一個(gè)元素的開始時(shí),會(huì)通知用戶當(dāng)前解析到一個(gè)元素的開始標(biāo)簽。而用戶可以在整個(gè)解析的過程中完成自己的業(yè)務(wù)邏輯,當(dāng)SAX解析結(jié)束,不會(huì)保存任何XML文檔的數(shù)據(jù)。
優(yōu)先:使用SAX,不會(huì)占用大量?jī)?nèi)存來保存XML文檔數(shù)據(jù),效率也高。
缺點(diǎn):當(dāng)解析到一個(gè)元素時(shí),上一個(gè)元素的信息已經(jīng)丟棄,也就是說沒有保存元素與元素之間的結(jié)構(gòu)關(guān)系,這也大大限制了SAX的使用范圍。如果只是想查詢XML文檔中的數(shù)據(jù),那么使用SAX是最佳選擇!
本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://xamj520.com/javaee