Posted on 2005-02-19 22:00
laogao 閱讀(606)
評論(0) 編輯 收藏 所屬分類:
On Java
為了讓XML文檔能夠被應(yīng)用程序識別和處理,必須提供一個讀取XML文檔的途徑。當(dāng)然,你也許會說,XML不就是文本文件嗎?我用java.io包不就可以讀取了?XML文件并非簡單的plain text,它有自己的結(jié)構(gòu)和描述性,我們需要在基本的I/O之上更進(jìn)一步。常見的XML讀取有兩種不同的方式:SAX和DOM,下面我們分別來看一下:
SAX是Simple API for XML的縮寫,顧名思義,就是處理XML的簡單API,就象它的名字所暗示的那樣,SAX比DOM要簡單直接得多。本質(zhì)上講,SAX是事件驅(qū)動的,比如,當(dāng)讀取XML文件到一個標(biāo)簽的結(jié)尾時,該事件被傳遞到應(yīng)用程序,應(yīng)用程序做出相應(yīng)處理,于是,應(yīng)用程序在這個時候只知道已經(jīng)讀取的那一部分內(nèi)容,而對剩下的XML數(shù)據(jù)一無所知。這正是SAX的局限,同時,因?yàn)镾AX是讀一部分處理一部分,它的速度相當(dāng)快。
DOM是Document Object Model的縮寫,文檔對象模型,這個名字聽上去就要更抽象一些,它是一次性把整個XML文檔讀取完畢然后構(gòu)件一個完整的樹狀對象模型,于是它的速度要比SAX慢很多,但是對XML文檔整體就有一個更加完整的視圖,這在有些時候是必需的。
通常我們使用的XML API都同時支持這兩種模式,在遇到具體問題時,我們可以根據(jù)文檔的復(fù)雜度、規(guī)模、以及我們的需求來確定到底使用哪一種模式。