dom4j解析xml格式文件實例

如下給4種常見的xml文件的解析方式的分析對比:

DOM  DOM4J  JDOM  SAX

Dom解析    在內存中建立一個DOM樹,該結構一般須要加載整個文檔而後才能作工做。因爲它是基於信息層次的,於是DOM被認爲是基於樹或基於對象的,樹在內存中是持久的,所以能夠修改它以便應用程序能對數據和結構做出更改能隨機訪問文件內容,也能夠修改原文件內容.html


SAX解析    SAX處理的優勢很是相似於流媒體的優勢。分析可以當即開始,而不是等待全部的數據被處理。SAX解析器採用了基於事件的模型,它在解析XML文檔的時候能夠觸發一系列的事件,當發現給定的tag的時候,它能夠激活一個回調方法,告訴該方法制定的標籤已經找到。並且,因爲應用程序只是在讀取數據時檢查數據,所以不須要將數據存儲在內存中。這對於大型文檔來講是個巨大的優勢線性解析,不能隨機訪問,也沒法修改原文件dom

 

JDOM解析   JDOM的目的是成爲Java特定文檔模型,它簡化與XML的交互而且比使用DOM實現更快.JDOM僅使用具體類而不使用接口。這在某些方面簡化了API,可是也限制了靈活性。第二,API大量使用了Collections類,簡化了那些已經熟悉這些類的Java開發者的使用。性能

 DOM4j解析  DOM4J使用接口和抽象基本類方法。DOM4J大量使用了API中的Collections類,可是在許多狀況下,它還提供一些替代方法以容許更好的性能或更直接的編碼方法。直接好處是,雖然DOM4J付出了更復雜的API的代價,可是它提供了比JDOM大得多的靈活性。測試

 

最後相比之下選擇了dom4j對其經行解析。編碼

 

下面是xml文件的一部分:spa

考慮到上面的複雜因素,從面向對象出發,我定義瞭如下三個實體類對象:3d

每一個對象的定義都比較簡單:ResultSet.class,RowDetail.class,RowMaster.class的定義分別以下:xml

 

其中用到的最爲關鍵的技術固然是xpath表達式的書寫了,詳情請參考:http://www.cnblogs.com/fdszlzl/archive/2009/06/02/1494836.html,下面我就直接給出個人解析代碼:htm

如下是測試查看List<ResultSet> resuList中部分數據的輸出:對象

相關文章
相關標籤/搜索