PULL解析詳解_第1頁
PULL解析詳解_第2頁
PULL解析詳解_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 pull解析xml文件,和sax和dom一樣 都可以脫離android單獨(dú)使用,pull和sax的原理一樣,不一樣的地方是pull讀取xml文件后調(diào)用方法返回的是數(shù)字, 讀取到xml的聲明返回?cái)?shù)字0 START_DOCUMENT; 讀取到xml的結(jié)束返回?cái)?shù)字1 END_DOCUMENT ; 讀取到xml的開始標(biāo)簽返回?cái)?shù)字2 START_TAG 讀取到xml的結(jié)束標(biāo)簽返回?cái)?shù)字3 END_TAG 讀取到xml的文本返回?cái)?shù)字4 TEXT pull是開源的項(xiàng)目 源碼下載地址 被解析的xml文檔和android dom 解析xml方式 中的xml文檔一樣,命名為pullTest.xml.html vi

2、ew plaincopy1 private String pullParseXml(InputStream inputStream) 2 String result = ; 3 /解析全部的xml 4 boolean isParse = true; 5 try 6 / 創(chuàng)建一個(gè)xmlPullParser的工廠 7 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 8 / 獲取一個(gè)解析實(shí)例 9 XmlPullParser parse = factory.newPullParser(); 10 / 設(shè)置輸入流的編碼

3、格式 11 parse.setInput(inputStream, UTF-8); 12 / 當(dāng)前事件的類型 13 int eventType = parse.getEventType(); 14 while (XmlPullParser.END_DOCUMENT != eventType) 15 / 當(dāng)前節(jié)點(diǎn)的名稱 16 String nodeName = parse.getName(); 17 switch (eventType) 18 case XmlPullParser.START_TAG: 19 if (group.equals(nodeName) 20 / 解析節(jié)點(diǎn)中的屬性值,ge

4、tAttributeCount()獲取屬性的個(gè)數(shù) 21 for (int i = 0; i parse.getAttributeCount(); i+) 22 / 屬性名稱 23 String groupName = parse.getAttributeName(i); 24 / 屬性名稱對(duì)應(yīng)的值 25 String nameValue = parse.getAttributeValue(i); 26 result = result + groupName + = + nameValue; 27 28 result += n; 29 else if (person.equals(nodeNam

5、e) 30 String personName = parse.getAttributeValue(0); 31 String age = parse.getAttributeValue(1); 32 result = result + personName = + personName 33 + age = + age + n; 34 else if (chinese.equals(nodeName) 35 /節(jié)點(diǎn)對(duì)應(yīng)的文本 36 String chinese = parse.nextText(); 37 Pattern p = Ppile(s*|t|r|n); 38 M

6、atcher m = p.matcher(chinese); 39 chinese = m.replaceAll(); 40 41 result = result + chinese = + chinese; 42 else if (english.equals(nodeName) 43 String english = parse.nextText(); 44 45 Pattern p = Ppile(s*|t|r|n); 46 Matcher m = p.matcher(english); 47 english = m.replaceAll(); 48 49 resul

7、t = result + english = + english + n; 50 51 break; 52 case XmlPullParser.END_TAG: 53 /在解析到一個(gè)group節(jié)點(diǎn)完成時(shí),退出解析xml文件 54 / if(group.equals(nodeName) 55 / eventType = XmlPullParser.END_DOCUMENT; 56 / isParse = false; 57 / 58 break; 59 default: 60 break; 61 62 /整個(gè)xml文件全部解析 63 if(isParse) 64 eventType = par

8、se.next(); 65 66 67 catch (XmlPullParserException e) 68 / TODO Auto-generated catch block 69 e.printStackTrace(); 70 catch (IOException e) 71 / TODO Auto-generated catch block 72 e.printStackTrace(); 73 74 75 return result; 76 pull和sax不同最主要的體現(xiàn)在pull可以由客戶隨時(shí)終止解析xml.sax解析,只能從文檔頭一直讀到尾,中間不能停止也不能對(duì)文件進(jìn)行修改。直到解析完了整個(gè)文檔才會(huì)返回。html view plaincopy77 /在解析到一個(gè)group節(jié)點(diǎn)完成時(shí),退出解析xml文件 78 / if(group.equals(nodeName) 79 / eventType = XmlPullParser.END_DOCUMENT; 80 / is

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論