JDOM是一個開源的專為Java語言提供XML解析功能的項目,項目自2000年春季啟動,目前其最新版本是1.0,并且被Java Community Process接受為JSR102,當時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確實是Java語言處理XML的方便工具。
XML解析器是具有如下功能的軟件:可以解析XML文檔,可以按照Schema或者DTD規則文件修改文檔結構和內容,并且可以把XML文檔的內容提供給應用程序。XML解析器最常見的兩種API是DOM(Document Object Model)和SAX(Simple API for XML)。其中DOM把整個文檔讀入內存,并按照文檔元素的層次結構把它解析為樹的形式;SAX則以事件的形式來解析XML文件,不需要把整個文件讀入內存,比如從上往下讀文件的過程中會觸發startElement,endElement等事件。一般來說,SAX的效率比DOM高一些。
DOM和SAX是解析XML的最底層的API,各個廠商、各個組織的XML解析器,如Xerces Java Parser, JDOM,Microsoft XML Parser等都是使用其中的一種或者兩種API的基礎上,向用戶提供更方便的接口。我們一般不需要直接使用DOM和SAX. 比如JDOM就是集成了DOM和SAX兩種API。下面這個圖是JDOM的結構圖,摘自JDOM的創始人Jason Hunter2001年在O'reily Open Source大會上的講稿。可以看出,當輸入XML文檔時,JDOM使用SAXBuilder,當輸入為DOM樹的時候,才用DOMBuilder。

XML解析器是具有如下功能的軟件:可以解析XML文檔,可以按照Schema或者DTD規則文件修改文檔結構和內容,并且可以把XML文檔的內容提供給應用程序。XML解析器最常見的兩種API是DOM(Document Object Model)和SAX(Simple API for XML)。其中DOM把整個文檔讀入內存,并按照文檔元素的層次結構把它解析為樹的形式;SAX則以事件的形式來解析XML文件,不需要把整個文件讀入內存,比如從上往下讀文件的過程中會觸發startElement,endElement等事件。一般來說,SAX的效率比DOM高一些。
DOM和SAX是解析XML的最底層的API,各個廠商、各個組織的XML解析器,如Xerces Java Parser, JDOM,Microsoft XML Parser等都是使用其中的一種或者兩種API的基礎上,向用戶提供更方便的接口。我們一般不需要直接使用DOM和SAX. 比如JDOM就是集成了DOM和SAX兩種API。下面這個圖是JDOM的結構圖,摘自JDOM的創始人Jason Hunter2001年在O'reily Open Source大會上的講稿。可以看出,當輸入XML文檔時,JDOM使用SAXBuilder,當輸入為DOM樹的時候,才用DOMBuilder。