dom4j解析中的幾個物件
node
--branch
--document
--element
--commment
--attribute
--text
branch
--document
--element
jaxp解析中的幾個物件
node
--document
--element
--commment
--attr
--text
dom4j解析
中全部物件都是node物件的子節點,也就是說它把說有物件都單獨分離出來看成乙個物件,而branch是乙個對經常使用節點的封裝和關聯,如element物件就包括了有attribute物件和text物件,而document物件就封裝了全部節點物件
jaxp的dom解析
jaxp的dom解析方式沒有branch節點,沒有將各個節點進行封裝,全部操作的都是node節點;
並且由於節點間沒有關聯屬性,所以在建立節點後須要進行關聯,刪除節點時須要找父節點
細節:node的節點沒有獲得attribute的方法,僅僅有element才有獲得attribute的方法
dom4j解析,
jaxp的dom解析的共同點
1.通過依據條件查詢後的結果都是乙個list集合
2.改動text或textcontent時既能夠用node也能夠用element
xml文件解析方式有兩種dom和sax,經常使用開發工具有兩種jaxp,dom4j
jaxp:將兩種解析方法分開了,dom解析和sax解析,sax解析方法沒有寫方法
dom4j:把兩種解析方式結合起來,取檔案時採用sax解析,寫檔案時採用dom解析,繼承了兩種解析方式的長處
關於sax解析:
sax解析事實上也是把文件載入進記憶體中,可是這個快取區僅僅有3m左右的大小(能夠用乙個大文件,然後列印characters方法中的start值觀察),假設文件非常小,所有載入進記憶體,假設文件非常大,快取區慢後會自己主動清空快取區,繼續載入興許資料,這個快取陣列就是characters()方法引數列表中的ch。
也就是說,假設要讀取乙個小文件,僅僅須要複寫這乙個方法就能夠了,然後將字元陣列轉成字串列印就能夠了,或者依據角標取響應的資料。
public void characters(char ch, int start, int length)
然後文件的讀取事實上就相當於io流中的指標移動
採用dom4j解析xml工具
在實際的開發中,我們通常會設計到xml檔案的解析,其中dom4j就是乙個不錯的選擇.dom4j的效能和易用性方面都是屈指可數的.為了更加方便使用dom4j解析xml檔案,本人寫出了乙個xml的解析工具類,從更大粒度上支援xml檔案的解析.該工具支援萬用字元號,應該算的上是乙個很方便和功能強健的類.a...
Xml程式設計 Dom4j解析工具
建立解析器 saxreader reader new saxreader 利用解析器讀入xml文件 document document reader.read new file input.xml 獲取文件的根節點 element root document.getrootelement 介面繼承結...
xml之DOM方式解析,DOM4J工具解析原理
dom解析原理 dom解析原理 xml解析器一次性把整個xml文件載入進記憶體,然後在記憶體中構建一顆document的物件樹,通過document物件,得到樹上的節點物件,通過節點物件訪問 操作 到xml文件的內容。一張圖來完全概括這個原理。而dom4j原理是dom方式解析的,下面介紹dom4j ...