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