DOM4J是目前在XML剖析方面是最優秀的(Hibernate、Sun的JAXM也都使用DOM4J來剖析XML),它合併了許多超出基本XML文件表示的功能,包括合併XPath的使用、XML Schema支援以及用於大資料文件或遵循文件基於事件的處理。
使用方法
目前最新DOM4J包下載網址:http://nchc.dl.sourceforge.net/sourceforge/dom4j/Dom4J-1.6.1.zip 解開後,僅操作XML文件的話把Dom4J-1.6.1.jar此檔案加入程式中即可,倘若需要使用XPath的話必須加入檔案Jaxen-1.1-beta-7.jar。效能測試
環境:AMD4400+ 2.0+GHz主頻 JDK6.0運行參數:-Xms400m -Xmx400m
XML文件大小:10.7M
結果:DOM: >581297ms、SAX: 8829ms、JDOM: 581297ms、DOM4J: 5309ms,時間包括IO的,只是進行了簡單的測試,僅供參考。
比較
- DOM
DOM是基於樹的結構,通常需要載入整份文件和構造DOM的樹狀,然後才能開始工作。優點:
- 由於整棵樹在記憶體中,因此可以對XML文件隨機訪問。
- 可以對XML文件進行修改操作。
- 相較SAX,DOM使用也更簡單。
- 整個文件必須一次性剖析完。
- 由於整個文件都需要載入記憶體,對於資料量大文件成本高。
- SAX
SAX是類似串流的資料,它基於事件驅動的,因此無需將整個文件載入記憶體,使用者只需要監聽自己感興趣的事件即可。優點:
- 無須將整個XML文件載入記憶體,因此消耗記憶體少。
- 可以註冊多個ContentHandler。
- 不能隨機訪問XML中的節點。
- 不能修改文件。
- JDOM
優點:
- DOM方式的優點。
- 具有SAX的Java規則。
- 運用輕鬆、簡單方式處理XML文件。
- DOM方式的缺點。
- DOM4J
優點:
- 容易使用。
- 效能最好。
- 靈活性、功能強大等優勢。
若有剖析程式的問題,可至參考出處查看。
參考出處:
http://kree.iteye.com/blog/668280
http://www.open-open.com/lib/view/open1346822899256.html
沒有留言:
張貼留言