更新時(shí)間:2022-12-30 16:13:09 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1582次
解析方式是:事件驅(qū)動(dòng)機(jī)制,SAX解析器是逐行讀取XML文件解析,遇到一個(gè)標(biāo)簽/元素的開始/結(jié)束/內(nèi)容/屬性時(shí),觸發(fā)事件。根據(jù)相應(yīng)的事件,我們可以做相應(yīng)的處理
優(yōu)點(diǎn):
分析能夠立即開始,而非等待所有的數(shù)據(jù)加載才能處理
逐行加載XML文件,節(jié)省內(nèi)存,有助于解析大于系統(tǒng)內(nèi)存的文檔 (但其實(shí)實(shí)際中用到的少之又少,畢竟沒有這么大的單一文件)
有時(shí)不必解析整個(gè)文檔,它可以在某個(gè)條件得到滿足時(shí)停止解析
缺點(diǎn):
單向解析,無法定位文檔層次(位置),無法同時(shí)訪問同一文檔的不同部分?jǐn)?shù)據(jù) (因?yàn)橹?/p>
行解析, 當(dāng)解析第n行的時(shí)候, 第n-1行已經(jīng)被釋放了, 無法再次進(jìn)行操作了).
無法得知事件發(fā)生時(shí)元素的層次, 只能自己維護(hù)節(jié)點(diǎn)的父/子關(guān)系.
只讀解析方式, 無法修改XML文檔的內(nèi)容.
解析方式是:與平臺(tái)和語言無關(guān)的方式表示XML文檔的官方W3C標(biāo)準(zhǔn),分析該結(jié)構(gòu)通常需要加載整個(gè)文檔和內(nèi)存中建立文檔樹模型,程序員可以通過操作文檔樹, 來完成數(shù)據(jù)的獲取 修改 刪除等.
優(yōu)點(diǎn):
文檔在內(nèi)存中加載, 允許對(duì)數(shù)據(jù)和結(jié)構(gòu)做出更改.
訪問是雙向的,可以在任何時(shí)候在樹中雙向解析數(shù)據(jù)。
缺點(diǎn):
文檔全部加載在內(nèi)存中 , 消耗資源大. (但是現(xiàn)在也不是使用的障礙了,大多數(shù)程序都采用類DOM解析)
解析方式是:類似DOM解析,目的是解析成為Java特定文檔模型,它簡化與XML的交互并且比使用DOM實(shí)現(xiàn)更快。由于是第一個(gè)Java特定模型,JDOM一直得到大力推廣和促進(jìn)。 JDOM文檔聲明其目的是“使用20%(或更少)的精力解決80%(或更多)Java/XML問題”
(根據(jù)學(xué)習(xí)曲線假定為20%)
優(yōu)點(diǎn):
使用具體類而不是接口,簡化了DOM的API。
大量使用了Java集合類,方便了Java開發(fā)人員。
缺點(diǎn):
(由于是具體的集合類)沒有較好的靈活性。
性能不是那么優(yōu)異。
解析方式是:作為JDOM的一種智能分支,它合并了許多超出基本XML文檔表示的功能:用于大文檔或流化文檔的基于事件的處理。它還提供了構(gòu)建文檔表示的選項(xiàng), DOM4J是一個(gè)非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),同時(shí)它也是一 個(gè)開放源代碼的軟件。如今你可以看到越來越多的Java軟件都在使用DOM4J來讀寫XML。
目前許多開源項(xiàng)目中大量采用DOM4J , 例如:Hibernate
優(yōu)點(diǎn):
XPath支持
XML Schema支持
缺點(diǎn):
DOM相較于SAX解析的缺點(diǎn)這個(gè)也都有
以上就是“強(qiáng)烈推薦的,xml解析相關(guān)的面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)