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