天天看點

【Java程式設計】DOM XML Parser解析、周遊、建立XML

dom 是 w3c 處理 xml 的标準 api,它是許多其它與 xml 處理相關的标準的基礎,不僅是 java,其它諸如 javascript,php,ms .net 等等語言都實作了該标準,成為了應用最為廣泛的 xml 處理方式。當然,為了能提供更多更加強大的功能,java 對于 dom 直接擴充工具類有很多,比如很多 java 程式員耳熟能詳的 jdom,dom4j 等等,它們基本上屬于對 dom 接口功能的擴充,保留了很多 dom

api 的特性,許多原本的 dom 程式員甚至都沒有任何障礙就熟練掌握了另外兩者的使用,直覺、易于操作的方式使它深受廣大 java 程式員的喜愛。

實作 w3c 标準,有多種程式設計語言支援這種解析方式,并且這種方法本身操作上簡單快捷,十分易于初學者掌握。其處理方式是将 xml 整個作為類似樹結構的方式讀入記憶體中以便操作及解析,是以支援應用程式對 xml 資料的内容和結構進行修改,但是同時由于其需要在處理開始時将整個 xml 檔案讀入到記憶體中去進行分析,是以其在解析大資料量的 xml 檔案時會遇到類似于記憶體洩露以及程式崩潰的風險,請對這點多加注意。

适用範圍:小型 xml 檔案解析、需要全解析或者大部分解析 xml、需要修改 xml 樹内容以生成自己的對象模型

xml dom将xml文檔作為樹結構,樹結構稱為一個節點樹。所有的節點可以通過樹通路,它們的内容可以被修改或删除,也可以建立新的元素。節點樹用于顯示節點集和它們之間的聯系。下圖呈現的是檔案的節點樹。

【Java程式設計】DOM XML Parser解析、周遊、建立XML

常用的幾個對象:

1)element類:

是node類最主要的子對象,被廣泛使用,在元素中可以包含屬性,因而element中有存取其屬性的方法。

2)node類:

node對象是dom中最基本的對象,代表了文檔樹中的抽象節點。但在實際使用中很少會直接使用node對象,而是使用node對象的子對象element,attr,text等。

3)nodelist類:

代表了一個包含一個或者多個node的清單,根據操作可以将其簡化的看做為數組。

下面給出一段用于解析的 books.xml片段:

book.java:該對象是一個實體bean,其字段資訊對應着xml檔案裡的元素字段,由于篇幅有限,讀者自行生成get、set方法 。

readxmlfile.java :解析xml檔案并存入list<book>集合。

運作程式後的效果圖:

【Java程式設計】DOM XML Parser解析、周遊、建立XML

loopxmlfile.java:通過疊代周遊xml檔案

createxmlfile.java:

将集合list<book>中的資料填充建構的xml檔案中,讀者可結合第2節 xml dom樹圖來了解整個xml檔案節點的生成、添加建構過程。

特别注意:

對于xml檔案中的元素<year>2500</year>而言,2500不是<year>元素的值,而是<year>元素的一個textnode節點,是以才有year.appendchild(doc.createtextnode(books.get(i).getyear().tostring()));這樣的語句存在。

【Java程式設計】DOM XML Parser解析、周遊、建立XML

java 處理 xml 的三種主流技術及介紹

xml dom node tree

how to read xml file in java – (dom parser)

how to create xml file in java – (domparser)

org.w3c.dom(java dom)解析xml文檔

友情提示:

轉載請注明出處 ,謝咯!