小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

sax/dom/jdom/dom4j的區(qū)別

 360lec 2016-09-29

網(wǎng)上能夠查到很多的4種解析方式的區(qū)別,我再做一下摘錄和總結(jié),順帶給自己做個(gè)備份。


SAX

sax分析器在對xml文檔進(jìn)行分析時(shí),觸發(fā)一系列的事件,應(yīng)用程序通過事件處理函數(shù)實(shí)現(xiàn)對xml文檔的訪問.

因?yàn)槭录|發(fā)是有時(shí)序性的,所以sax分析器提供的是一種對xml文檔的順序訪問機(jī)制,對于已經(jīng)分析過的部分,

不能再重新倒回去處理.此外,它也不能同時(shí)訪問處理2個(gè)tag.

sax分析器在實(shí)現(xiàn)時(shí),只是順序地檢查xml文檔中的字節(jié)流,判斷當(dāng)前字節(jié)是xml語法中的哪一部分,檢查是否符合

xml語法并且觸發(fā)相應(yīng)的事件.對于事件處理函數(shù)的本身,要由應(yīng)用程序自己來實(shí)現(xiàn). SAX解析器采用了基于事件的模型,它在解析XML文檔的時(shí)候可以觸發(fā)一系列的事件,當(dāng)發(fā)現(xiàn)給定的tag的時(shí)候,它可以激活一個(gè)回調(diào)方法,告訴該方法制定的標(biāo)簽已經(jīng)找到。

同DOM分析器相比,sax分析器對xml文檔的處理缺乏靈活性,但對于只訪問xml文檔中的數(shù)據(jù)而不改變應(yīng)用程序

來說,sax分析器的效率會很高.

sax對內(nèi)存要求也比較低.

 

優(yōu)點(diǎn):1、無需將整個(gè)文檔加載到內(nèi)存中,所以內(nèi)存消耗少.

       2 、推模型允許注冊多個(gè)contentHandler.

缺點(diǎn):1、沒有內(nèi)置的文檔導(dǎo)航支持.

       2、不能隨機(jī)訪問xml文檔.

       3、不支持原地修改xml.

       4、不支持名字空間作用域.

適合:對xml文檔讀取數(shù)據(jù)

 

DOM

DOM解析器把XML文檔轉(zhuǎn)化為一個(gè)包含其內(nèi)容的樹,并可以對樹進(jìn)行遍歷。也就是說,通過DOM樹,應(yīng)用程序可以對XML文檔進(jìn)行隨機(jī)訪問。這種訪問方式給應(yīng)用程序的開發(fā)帶來了很大的靈活性,它可以任意地控制整個(gè)XML文檔中的內(nèi)容.用DOM解析模型編程容易,開發(fā)人員只需要調(diào)用建樹的指令,然后利用navigation APIs訪問所需的樹節(jié)點(diǎn)來完成任務(wù)。可以很容易的添加和修改樹中的元素。然而由于使用DOM解析器的時(shí)候需要處理整個(gè)XML文檔,所以對性能和內(nèi)存的要求比較高,尤其是遇到很大的XML文件的時(shí)候。由于它的遍歷能力,DOM解析器常用于XML文檔需要頻繁的改變的服務(wù)中。

 

優(yōu)點(diǎn):1、豐富的API集合,可以輕松導(dǎo)航.

        2、 整個(gè)DOM樹加載到內(nèi)存,允許隨機(jī)訪問.

缺點(diǎn):1、整個(gè)xml文檔必須一次解析完.

        2、整個(gè)DOM樹都加載到內(nèi)存中,內(nèi)存要求高.

        3、一般的DOM節(jié)點(diǎn)對于必須為所有節(jié)點(diǎn)創(chuàng)建對象的對象類型綁定不太理想.

適用:對xml文檔修改數(shù)據(jù)

 

JDOM

JDOM是處理xml的純java api.使用具體類而不是接口.JDOM具有樹的遍歷,又有SAX的java規(guī)則.JDOM與DOM主要有兩方面不同。首先,JDOM僅使用具體類而不使用接口。這在某些方面簡化了API,但是也限制了靈活性。第二,API大量使用了Collections類,簡化了那些已經(jīng)熟悉這些類的Java開發(fā)者的使用。

JDOM自身不包含解析器。它通常使用SAX2解析器來解析和驗(yàn)證輸入XML文檔(盡管它還可以將以前構(gòu)造的DOM表示作為輸入)。它包含一些轉(zhuǎn)換器以將JDOM表示輸出成SAX2事件流、DOM模型或XML文本文檔。JDOM是在Apache許可證變體下發(fā)布的開放源碼。

 

優(yōu)點(diǎn):1、是基于樹的處理xml的java api,把樹加載到內(nèi)存中.

        2、沒有向下兼容的限制,所以比DOM簡單.

        3、速度快.

        4、具有SAX的java 規(guī)則.

缺點(diǎn):1、不能處理大于內(nèi)存的文檔.

        2、JDOM表示XML文檔邏輯模型,不能保證每個(gè)字節(jié)真正變換.

        3、 針對實(shí)例文檔不提供DTD與模式的任何實(shí)際模型.

        4、 不支持于DOM中相應(yīng)遍歷包.

適用:自行選擇

 

DOM4J

DOM4J有更復(fù)雜的api,所以dom4j比jdom有更大的靈活性.DOM4J性能最好,連Sun的JAXM也在用DOM4J.目前許多開源項(xiàng)目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J來讀取XML配置文件。如果不考慮可移植性,那就采用DOM4J.

優(yōu)點(diǎn):1、靈活性最高

     2、易用性和功能強(qiáng)大、性能優(yōu)異

缺點(diǎn):1、復(fù)雜的api

     2、移植性差

適用:自行選擇


    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多