欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android中pull如何解析xml方式-創(chuàng)新互聯(lián)

小編給大家分享一下android中pull如何解析xml方式 ,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、南開網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為南開等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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)目 源碼下載地址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();
			// 獲取一個解析實(shí)例
			XmlPullParser parse = factory.newPullParser();
			// 設(shè)置輸入流的編碼格式
			parse.setInput(inputStream, "UTF-8");
			// 當(dāng)前事件的類型
			int eventType = parse.getEventType();
			while (XmlPullParser.END_DOCUMENT != eventType) {
				// 當(dāng)前節(jié)點(diǎn)的名稱
				String nodeName = parse.getName();
				switch (eventType) {
				case XmlPullParser.START_TAG:
					if ("group".equals(nodeName)) {
						// 解析<group>節(jié)點(diǎn)中的屬性值,getAttributeCount()獲取屬性的個數(shù)
						for (int i = 0; i < parse.getAttributeCount(); i++) {
							// 屬性名稱
							String groupName = parse.getAttributeName(i);
							// 屬性名稱對應(yīng)的值
							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é)點(diǎn)對應(yīng)的文本
						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é)點(diǎn)完成時,退出解析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解析,只能從文檔頭一直讀到尾,中間不能停止也不能對文件進(jìn)行修改。直到解析完了整個文檔才會返回。

//在解析到一個group節(jié)點(diǎn)完成時,退出解析xml文件
//					if("group".equals(nodeName)){
//						eventType = XmlPullParser.END_DOCUMENT; 
//						isParse = false;
//					}

只要滿足退出解析的條件,只需要設(shè)置如下代碼即可。

eventType = XmlPullParser.END_DOCUMENT;

pull解析方式用到的方法,大部分我都在代碼中注釋了。

以上是“android中pull如何解析xml方式 ”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:android中pull如何解析xml方式-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://www.chinadenli.net/article16/ccedgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)商城網(wǎng)站品牌網(wǎng)站設(shè)計(jì)品牌網(wǎng)站建設(shè)品牌網(wǎng)站制作全網(wǎng)營銷推廣

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司