小編給大家分享一下android中pull如何解析xml方式 ,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、南開網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、HTML5、成都做商城網(wǎng)站、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為南開等各大城市提供網(wǎng)站開發(fā)制作服務。pull解析xml文件,和sax和dom一樣 都可以脫離android單獨使用,pull和sax的原理一樣,不一樣的地方是pull讀取xml文件后調(diào)用方法返回的是數(shù)字,
讀取到xml的聲明返回數(shù)字0 START_DOCUMENT;
讀取到xml的結束返回數(shù)字1 END_DOCUMENT ;
讀取到xml的開始標簽返回數(shù)字2 START_TAG
讀取到xml的結束標簽返回數(shù)字3 END_TAG
讀取到xml的文本返回數(shù)字4 TEXT
pull是開源的項目 源碼下載地址http://www.php.cn/
被解析的xml文檔和android dom 解析xml方式 中的xml文檔一樣,命名為pullTest.xml.
private String pullParseXml(InputStream inputStream) { String result = ""; //解析全部的xml boolean isParse = true; try { // 創(chuàng)建一個xmlPullParser的工廠 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // 獲取一個解析實例 XmlPullParser parse = factory.newPullParser(); // 設置輸入流的編碼格式 parse.setInput(inputStream, "UTF-8"); // 當前事件的類型 int eventType = parse.getEventType(); while (XmlPullParser.END_DOCUMENT != eventType) { // 當前節(jié)點的名稱 String nodeName = parse.getName(); switch (eventType) { case XmlPullParser.START_TAG: if ("group".equals(nodeName)) { // 解析<group>節(jié)點中的屬性值,getAttributeCount()獲取屬性的個數(shù) for (int i = 0; i < parse.getAttributeCount(); i++) { // 屬性名稱 String groupName = parse.getAttributeName(i); // 屬性名稱對應的值 String nameValue = parse.getAttributeValue(i); result = result + groupName + " = " + nameValue; } result += "\n"; } else if ("person".equals(nodeName)) { String personName = parse.getAttributeValue(0); String age = parse.getAttributeValue(1); result = result + "personName = " + personName + "age =" + age + "\n"; } else if ("chinese".equals(nodeName)) { //節(jié)點對應的文本 String chinese = parse.nextText(); Pattern p = Pattern.compile("\\s*|\t|\r|\n"); Matcher m = p.matcher(chinese); chinese = m.replaceAll(""); result = result + "chinese = " + chinese; } else if ("english".equals(nodeName)) { String english = parse.nextText(); Pattern p = Pattern.compile("\\s*|\t|\r|\n"); Matcher m = p.matcher(english); english = m.replaceAll(""); result = result + "english = " + english + "\n"; } break; case XmlPullParser.END_TAG: //在解析到一個group節(jié)點完成時,退出解析xml文件 // if("group".equals(nodeName)){ // eventType = XmlPullParser.END_DOCUMENT; // isParse = false; // } break; default: break; } //整個xml文件全部解析 if(isParse){ eventType = parse.next(); } } } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; }
pull和sax不同最主要的體現(xiàn)在pull可以由客戶隨時終止解析xml.sax解析,只能從文檔頭一直讀到尾,中間不能停止也不能對文件進行修改。直到解析完了整個文檔才會返回。
//在解析到一個group節(jié)點完成時,退出解析xml文件 // if("group".equals(nodeName)){ // eventType = XmlPullParser.END_DOCUMENT; // isParse = false; // }
只要滿足退出解析的條件,只需要設置如下代碼即可。
eventType = XmlPullParser.END_DOCUMENT;
pull解析方式用到的方法,大部分我都在代碼中注釋了。
以上是“android中pull如何解析xml方式 ”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文題目:android中pull如何解析xml方式-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article16/ccedgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、商城網(wǎng)站、品牌網(wǎng)站設計、品牌網(wǎng)站建設、品牌網(wǎng)站制作、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)