解析xml的幾種方法

1JDOM生成和解析XML

爲減少DOMSAX的編碼量,出現了JDOM

優點:20-80原則,極大減少了代碼量。

使用場合:要實現的功能簡單,如解析、創建等,但在底層,JDOM還是使用SAX(最常用)DOMXanan文檔。

2SAX生成和解析XML文檔

爲解決DOM的問題,出現了SAX,SAX事件驅動。當解析器發現元素開始、元素結束、文本、文檔的開始或結束等時發送事件,程序員編寫響應這些事件的代碼,保存數據。

優點:不用事先調入整個文檔,佔用資源少。SAX解析器代碼比DOM解析器代碼小,適於Applet下載。

缺點:不是持久的,事件過後若沒保存數據,那麼數據就丟了。無狀態性,從事件中只能得到文本,但不知該文本屬於哪個元素。

使用場合:Applet。只需XML文檔的少量內容,很少回頭訪問,機器內存少。

3DOM生成和解析XML文檔

XML文檔的已解析版本定義了一組接口。解析器讀入整個文檔,然後構建一個駐留內存的樹結構,然後代碼就可以使用 DOM 接口來操作這個樹結構。

優點:整個文檔樹在內存中,便於操作,支持刪除、修改、重新排列等多種功能。

缺點:將整個文檔調入內存(包括無用的節點),浪費時間和空間。

使用場合:一旦解析了文檔還需多次訪問這些數據,硬件資源充足(內存、CPU)

  

  • DOM解析原理:xml解析器一次性將整個xml文檔加載進內存,然後在內存中構建一棵Document對象樹,通過Document對象可以得到樹上的節點對象,通過節點對象就可以操作整個xml文檔的內容。

在讀取xml文檔之後,會在內存中形成一棵DOM樹,xml文件中的標籤作爲DOM樹的節點,並且xml文檔的根節點作爲DOM樹的根節點,所有的標籤構成了一棵具有層次的樹。節點存在一些信息:如節點名稱、節點類型(標籤節點、屬性節點、文本節點、註釋節點)。DOM解析是面向對象的編程。具體我們在使用時不用Node對象,而是使用其子類的三個對象。下面顯示了DOM面向編程過程中常用的對象。

xml文檔 —————->Document對象代表整個xml文檔 
節點 —————>Node對象父類 
標籤節點 —————> Element對象子類 
屬性節點 —————> Attribute對象子類 
文本節點 —————>Text對象子類

那麼我們怎麼拿到這些對象信息呢?使用Document對象,它代表的是一個完整的xml文檔,從而使得整個xml文檔可以被讀進去。

4DOM4J生成和解析XML文檔

DOM4J 是一個非常非常優秀的Java XML API,具有性能優異、功能強大和極端易用使用的特點,同時它也是一個開放源代碼的軟件。如今你可以看到越來越多的 Java 軟件都在使用 DOM4J來讀寫 XML,特別值得一提的是連 Sun JAXM 也在用 DOM4J


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章