Posted on 2007-04-20 23:44
xiaoxiaoleemin 閱讀(556)
評論(0) 編輯 收藏 所屬分類:
XML
JDOM是一個開源的專為Java語言提供XML解析功能的項目,項目自2000年春季啟動,目前其最新版本是1.0,并且被Java Community Process接受為JSR102,當(dāng)時Sun給予JDOM的肯定評價是:In general we tend to prefer to avoid adding new APIs to the Java platform which replicate the functionality of existing APIs. However, JDOM does appear to be significantly easier to use than the earlier APIs, so we believe it will be a useful addition to the platform.可見,JDOM確實(shí)是Java語言處理XML的方便工具。
XML解析器是具有如下功能的軟件:可以解析XML文檔,可以按照Schema或者DTD規(guī)則文件修改文檔結(jié)構(gòu)和內(nèi)容,并且可以把XML文檔的內(nèi)容提供給應(yīng)用程序。XML解析器最常見的兩種API是DOM(Document Object Model)和SAX(Simple API for XML)。其中DOM把整個文檔讀入內(nèi)存,并按照文檔元素的層次結(jié)構(gòu)把它解析為樹的形式;SAX則以事件的形式來解析XML文件,不需要把整個文件讀入內(nèi)存,比如從上往下讀文件的過程中會觸發(fā)startElement,endElement等事件。一般來說,SAX的效率比DOM高一些。
DOM和SAX是解析XML的最底層的API,各個廠商、各個組織的XML解析器,如Xerces Java Parser, JDOM,Microsoft XML Parser等都是使用其中的一種或者兩種API的基礎(chǔ)上,向用戶提供更方便的接口。我們一般不需要直接使用DOM和SAX. 比如JDOM就是集成了DOM和SAX兩種API。下面這個圖是JDOM的結(jié)構(gòu)圖,摘自JDOM的創(chuàng)始人Jason Hunter2001年在O'reily Open Source大會上的講稿。可以看出,當(dāng)輸入XML文檔時,JDOM使用SAXBuilder,當(dāng)輸入為DOM樹的時候,才用DOMBuilder。