溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

XML系列:(3)XML解析

發(fā)布時間:2020-07-05 14:36:38 來源:網(wǎng)絡(luò) 閱讀:421 作者:lsieun 欄目:開發(fā)技術(shù)


xml文件除了給開發(fā)者看,更多的情況使用程序讀取xml文件的內(nèi)容,這叫做xml解析。



1、XML解析方式和工具

1.1、XML解析方式

XML解析分為兩種方式:DOM和SAX。

DOM:W3C組織推薦的一種解析方式。

SAX:(Simple API for XML) 不是官方標準,它產(chǎn)生自XML社區(qū),幾乎所有的XML解析器都支持它。

JDK6.0提供新的解析方式StAX(Stream API for XML)

1.2、XML解析工具

DOM解析原理:

1)JAXP (oracle-Sun公司官方)

2)JDOM工具(非官方)

3)Dom4J工具(非官方) 三大框架(默認讀取xml的工具就是Dom4j)

SAX解析原理

1)Sax解析工具(oracle-sun公司官方)

2、DOM與SAX/StAX的區(qū)別

DOM解析

會把整個XML載入內(nèi)存,以DOM樹的形式存儲,支持回寫

如果XML文檔特別大,就會消耗計算機大量內(nèi)存,容易導(dǎo)致內(nèi)存溢出

SAX/StAx解析

相比DOM是一種更為輕量級的方案

采用串行方式讀取,基于事件驅(qū)動解析

編程相對復(fù)雜

不支持回寫,無法在讀取過程中修改XML數(shù)據(jù)


DOM解析 vs SAX解析
序號視角DOM解析SAX解析
1原理一次性加載xml文檔,不適合大容量的文件讀取加載一點,讀取一點,處理一點。適合大容量文件的讀取
2支持操作DOM解析可以任意進行增刪改讀SAX解析只能讀取
3是否支持回讀DOM解析任意讀取任何位置的數(shù)據(jù),甚至往回讀SAX解析只能從上往下,按順序讀取,不能往回讀
4編程方法DOM解析面向?qū)ο蟮木幊谭椒ǎ∟ode,Element,Attribute),Java開發(fā)者編碼比較簡單。SAX解析基于事件的編程方法。java開發(fā)編碼相對復(fù)雜。




3、DOM解析模型

xml解析器一次性把整個xml文檔加載進內(nèi)存,然后在內(nèi)存中構(gòu)建一顆Document的對象樹,    通過Document對象,得到樹上的節(jié)點對象,通過節(jié)點對象訪問(操作)到xml文檔的內(nèi)容。    缺點: 不適合讀取大容量的xml文件,容易導(dǎo)致內(nèi)存溢出。

XML系列:(3)XML解析


Document樹只有一個根節(jié)點,樹上的分支叫節(jié)點(Node)。文檔中所有的元素、屬性、文本都會被解析成Node節(jié)點(標簽節(jié)點Element、屬性節(jié)點Attribute、文本節(jié)點Text、注釋節(jié)點)。


XML系列:(3)XML解析




向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI