dom4j和jaxp解析工具的

來源:互聯網
上載者:User

標籤:style   color   檔案   資料   art   rgb   

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){

    System.out.println(new String(ch,10,2));

}

然後文檔的讀取其實就相當於IO流中的指標移動

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.