




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章Android網(wǎng)絡(luò)處理(二)2本章目標(biāo)Android中解析XML數(shù)據(jù)3預(yù)習(xí)檢查提問1、什么是XML,XML文檔結(jié)構(gòu),何為格式良好的XML文件。2、Java中的DOM方式解析XML。3、Java中的SAX方式解析XML。4DOM解析XMLDOM節(jié)點(diǎn)樹5DOM解析XML父子節(jié)點(diǎn)關(guān)系6DOM解析XML7實(shí)現(xiàn)代碼//通過工廠創(chuàng)建Dom解析對象實(shí)例DocumentBuilderdb=factory.newDocumentBuilder();//將xml文件輸入流交給Dom解析對象進(jìn)行解析,并將Dom樹返回Documentdocument=db.parse(getResources().getAssets().open("test.xml"));//通過Dom樹得到xml文件根元素ElementrootElement=document.getDocumentElement();//通過根元素獲取下面所有名字為case節(jié)點(diǎn)NodeListnodeList=rootElement.getElementsByTagName("case");StringBuildersb=newStringBuilder();//遍歷case節(jié)點(diǎn)for(inti=0;i<nodeList.getLength();i++){ElementcaseElement=(Element)nodeList.item(i);//獲取case下所有的子節(jié)點(diǎn)NodeListcaseChildList=caseElement.getChildNodes();//遍歷所有子節(jié)點(diǎn)for(inty=0;y<caseChildList.getLength();y++){8SAX解析XML9實(shí)現(xiàn)代碼//自定義SAX解析類
classSaxHandlerextendsDefaultHandler{ @Override publicvoidstartDocument()throwsSAXException{ super.startDocument(); } @Override publicvoidendDocument()throwsSAXException{ super.endDocument(); } @Override publicvoidstartElement(Stringuri,StringlocalName,StringqName, Attributesattributes)throwsSAXException{//解析代碼 } @Override publicvoidendElement(Stringuri,StringlocalName,StringqName) throwsSAXException{ //解析代碼 } @Override publicvoidcharacters(char[]ch,intstart,intlength) throwsSAXException{//解析代碼 }}}10實(shí)現(xiàn)代碼//獲取自定義解析器SaxHandlerhandler=newSaxHandler();//獲取解析工廠類
SAXParserFactoryfactory=SAXParserFactory.newInstance();//定義包裝XMLReader實(shí)現(xiàn)類的API。SAXParserparser=factory.newSAXParser();//用于使用回調(diào)讀取XML文檔的接口。XMLReaderreader=parser.getXMLReader();//應(yīng)用程序注冊內(nèi)容事件處理程序reader.setContentHandler(handler);//解析XML文檔。reader.parse(newInputSource(getResources().getAssets().open("test.xml")));11PULL解析XML12實(shí)現(xiàn)代碼//獲取XmlPullParser實(shí)例XmlPullParserparser=Xml.newPullParser();StringBuildersb=newStringBuilder();//將xml輸入流交給XmlPullParser處理parser.setInput(getResources().getAssets().open("test.xml"),"UTF-8");//獲取第一個(gè)事件intevent=parser.getEventType();while(event!=XmlPullParser.END_DOCUMENT){switch(event){//判斷當(dāng)前事件是否是文檔開始事件caseXmlPullParser.START_DOCUMENT:break;//判斷當(dāng)前事件是否是標(biāo)簽元素開始事件caseXmlPullParser.START_TAG:......caseXmlPullParser.END_TAG:break;}//不斷產(chǎn)生新的事件,當(dāng)事件為文檔結(jié)束的時(shí)候,退出循環(huán)。event=parser.next();}13三種解析XML小結(jié)三種解析XML共同點(diǎn):都需要獲取一種解析器的實(shí)例。比如DOM,SAX方式是通過工廠模式獲取解析器,而PULL方式是通過android平臺封裝的工具類獲取解析器的實(shí)例。將要解析的XML文檔交給解析器處理。按照各自的方式特點(diǎn)進(jìn)行解析。比如DOM解析DOM樹,SAX按照自定義的事件處理方式進(jìn)行解析,PULL按照自己的事件處理特點(diǎn)進(jìn)行解析。14三種解析XML小結(jié)三種方式的不同主要是解析XML理念不同:DOM是DOM樹的方式,SAX是事件流方式,而XPP(XMLPullParsing)是streaming(incremental)的方式。DOM和SAX在解釋XML時(shí),是不允許中斷的;而XPP是可以在任何時(shí)候中斷,并且允許重新開始。XPP在解釋XML時(shí)會忽略某些部分,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加班夜宵采購合同范本
- 單位間借用合同范本
- 個(gè)人股東入股合同范本
- 保安公司加盟合同范本
- 產(chǎn)學(xué)研技術(shù)采購合同范本
- 勞務(wù)聘用員工合同范本
- 企業(yè)綠化采購合同范本
- 加工中心租賃合同范本
- 勞務(wù)協(xié)議解除合同范本
- 公司股權(quán)集資合同范本
- 行政法學(xué)基礎(chǔ)講義
- 中建專項(xiàng)施工升降機(jī)安裝專項(xiàng)施工方案
- 錄用通知書offer錄取通知書
- Oracle數(shù)據(jù)庫安全配置基線
- 1到六年級古詩全部打印
- PMC部績效考核表
- 新聞學(xué)概論(復(fù)習(xí)重點(diǎn)內(nèi)容)
- 功率測量模塊的軟件設(shè)計(jì)方案與實(shí)現(xiàn)
- 中考英語高頻單詞專項(xiàng)訓(xùn)練題配套答案
- 火龍罐療法經(jīng)典課件
- 應(yīng)用寫作(第六版) 課件 第1-4章 應(yīng)用寫作概述-行政事務(wù)應(yīng)用文
評論
0/150
提交評論