Javawebxml文件讀取解析方式

其實(shí)解析xml文件有四種方式:DOM,JDOM,DOM4J,SAX。

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管機(jī)柜,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

我們來說與平臺(tái)無關(guān)的兩種官方解析方式:DOM 和 SAX

一、DOM 解析

在 Java 代碼中,xml 文件是標(biāo)記型文檔,這時(shí)用 dom 來解析 xml 文件 dom 會(huì)根據(jù) html 的層級(jí)結(jié)構(gòu)在內(nèi)存中分配一個(gè)樹形結(jié)構(gòu),把html的標(biāo)簽,屬性和文本都封裝成對(duì)象

DOM 解析步驟:
1、使用 newInstance 方法,創(chuàng)建一個(gè) DocumentBuilderFactory 的對(duì)象。

2、創(chuàng)建一個(gè) DocumentBuilde r對(duì)象,通過 DocumentBuilder 的對(duì)象的 parse[]

方法加載 xml 文件到當(dāng)前項(xiàng)目下,如:

DocumentBuilder db=dbf.newDocumentBuilder();

Document document=db.parse(uri);

3、獲取 xml 文件

NodeList booklist = document.getElementsByTagName(節(jié)點(diǎn)名稱);

4、用foreach方法進(jìn)行遍歷

5、解析子節(jié)點(diǎn)

NodeList childnode=book.getChildNodes();可用childnode.item(k).getNodeType()==Node.ELEMENT_NODE這個(gè)方法進(jìn)行判斷以區(qū)分text類型的node以及element類型的node。

DOM 解析的優(yōu)點(diǎn):可以很方便實(shí)現(xiàn)增刪改的功能

缺點(diǎn):如果文件過大,造成內(nèi)存溢出

二、SAX 解析

在 Java 中,SAX 解析采用事件驅(qū)動(dòng),邊讀邊解析,從上到下,一行一行的解析,解析到某一個(gè)對(duì)象,返回對(duì)象名稱。而且當(dāng)SAX解析結(jié)束,不會(huì)保存任何XML文檔的數(shù)據(jù)。

SAX 解析步驟:

1、創(chuàng)建一個(gè) SAXParserFactory 對(duì)象。

SAXParserFactory factory = SAXParserFactory.newInstance();

2、創(chuàng)建一個(gè) SAXParser 對(duì)象通過 parse 方法加載 xml 文件。

SAXParser parser = factory.newSAXParser();

這時(shí)與DOM的區(qū)別是這里需要一個(gè) handler,此時(shí)需要?jiǎng)?chuàng)建一個(gè) handler 類。

3、handler 類需要繼承 DefaultHandler。

SAX 解析的優(yōu)點(diǎn):如果文件過大,不會(huì)造成內(nèi)存溢出,方便實(shí)現(xiàn)查詢操作;
缺點(diǎn):不能實(shí)現(xiàn)增刪改操作;

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)頁名稱:Javawebxml文件讀取解析方式
轉(zhuǎn)載來于:http://muchs.cn/article40/gesdho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)Google、電子商務(wù)建站公司、網(wǎng)站設(shè)計(jì)網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)