Posted on 2005-02-19 22:00
laogao 阅读(602)
评论(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都同时支持这两种模式,在遇到具体问题时,我们可以根据文档的复杂度、规模、以及我们的需求来确定到底使用哪一种模式。