91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android使用XmlPullParser來解析XML文件的示例

發布時間:2021-02-25 11:38:22 來源:億速云 閱讀:181 作者:清風 欄目:編程語言

這篇“android使用XmlPullParser來解析XML文件的示例”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“android使用XmlPullParser來解析XML文件的示例”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。

Android是什么

Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。

解析以下的一個XML:

<?xml version="1.0" encoding="utf-8" ?>
<rss><sid>77f265bb46de068e78f35afbadec62af</sid><count>3</count><control>0</control>
<mblog><uid>1195224593</uid><favid>3436952795</favid><mblogid>5xtaJR</mblogid><mblogidnum>3436952795</mblogidnum>
<mblogtype>0</mblogtype><mlevel>0</mlevel><feedid>5xtaJR</feedid><nick>馬艷麗</nick>
<portrait> 
<vip>1</vip>
<vipsubtype>0</vipsubtype>
<member_type>13</member_type>
<remark></remark>
<level>2</level>
<rtnum>11</rtnum>
<commentnum>25</commentnum>
<attitudenum>0</attitudenum>
<attitudeid>0</attitudeid>
<attitudes_status>0</attitudes_status>
<attitudes_count>0</attitudes_count>
<mblogtypename></mblogtypename>
<visible><type>0</type><list_id>0</list_id></visible>
<content>婚禮在北海美麗的北海公園舉行…好美好浪漫的地方… </content>
<pic> 
<source>彩信</source>
</mblog>
</rss>


這樣來寫解析:

	public static Object[] getMBlogList(String content) throws HttpException {
		try {
			Object[] result = new Object[3];
			List<MBlog> lst = new ArrayList<MBlog>();
			result[1] = lst;

			final XmlPullParser parser = Xml.newPullParser();
			parser.setInput(new StringReader(content));
			int type;
			while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
				switch (type) {
					<strong>case XmlPullParser.START_TAG:這里開始讀取最外層的標簽屬性</strong>
						if (parser.getName().equals("count")) {
							try {
								result[0] = new Integer(parseText(parser));
							} catch (Exception e) {
								result[0] = 0;
							}
						} else if (parser.getName().equals("mblog")) {
							MBlog mb = parseMBlog(parser);
							if (mb != null)
								lst.add(mb);
						} else if (parser.getName().equals("relation")) {
							result[2] = new Integer(parseText(parser));
						}
						break;
					default:
						break;
				}
			}
			return result;
		} catch (NumberFormatException e) {
			throw new HttpException(e);
		} catch (XmlPullParserException e) {
			throw new HttpException(e);
		} catch (IOException e) {
			throw new HttpException(e);
		} catch (ParseException e) {
			throw new HttpException(e);
		}
	}
	
	private static String parseText(XmlPullParser parser) throws ParseException {
		try {
			int type = parser.next();
			if (type == XmlPullParser.TEXT) {
				return replaceEntityRef(parser.getText().trim());
			} else {
				return "";
			}
		} catch (Exception e) {
			throw new ParseException(PARSE_ERROR, e);
		}
	}
	
	public static MBlog parseMBlog(XmlPullParser parser) throws ParseException {
		<strong>MBlog b = new MBlog();//這里開始讀取每個MBlog對象</strong>
		try {
			int type;
			LOOP: {
				while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
					switch (type) {
						case XmlPullParser.START_TAG:
							if (parser.getName().equals("uid")) {
								b.uid = parseText(parser);
								if (b.uid.equals(""))
									return null;
							} else if (parser.getName().equals("favid")) {
								b.favid = parseText(parser);
							} else if (parser.getName().equals("mblogid")) {
								b.mblogid = parseText(parser);
							} else if (parser.getName().equals("nick")) {
								String s = parseText(parser);
								b.nick = s;
							} else if (parser.getName().equals("portrait")) {
								b.portrait = parseText(parser);
							} else if (parser.getName().equals("vip")) {
								b.vip = (parseText(parser).equals("1")) ? true : false;
							} else if (parser.getName().equals("content")) {
								b.content = parseText(parser);
							} else if (parser.getName().equals("rtrootuid")) {
								b.rtrootuid = parseText(parser);
							} else if (parser.getName().equals("rtrootid")) {
								b.rtrootid = parseText(parser);
							} else if (parser.getName().equals("rtrootnick")) {
								String s = parseText(parser);
								b.rtrootnick = s;
							} else if (parser.getName().equals("rtrootvip")) {
								b.rtrootvip = (parseText(parser).equals("1")) ? true : false;
							} else if (parser.getName().equals("rtreason")) {
								b.rtreason = parseText(parser);
							} else if (parser.getName().equals("rtnum")) {
								b.rtnum = Integer.parseInt(parseText(parser));
							} else if (parser.getName().equals("commentnum")) {
								b.commentnum = Integer.parseInt(parseText(parser));
							} else if (parser.getName().equals("time")) {
								b.time = new Date(Long.parseLong(parseText(parser)) * 1000);
							} else if (parser.getName().equals("pic")) {
								b.pic = parseText(parser);
							} else if (parser.getName().equals("source")) {
								b.src = parseText(parser);
							} else if (parser.getName().equals("longitude")) {
								b.longitude = parseText(parser);
							} else if (parser.getName().equals("latitude")) {
								b.latitude = parseText(parser);
							}
							break;
						case XmlPullParser.END_TAG:
							if (parser.getName().equals("mblog")) {
								break LOOP;
							}
							break;
						default:
							break;
					}
				}
			}
			return b;
		} catch (Exception e) {
			throw new ParseException(PARSE_ERROR, e);
		}
	}	


在Activity中這樣調用:

public void parseAssertData() {
		InputStream is = null;
		try {
			is = this.getAssets().open("11.xml", Context.MODE_PRIVATE);
			int length = is.available();
			byte[] buffer = new byte[length];
			is.read(buffer);
			String temp = new String(buffer);

			try {
				Object[] array = ParseData.getMBlogList(temp);
			} catch (HttpException e) {
				e.printStackTrace();
			}
			
		} catch (IOException ex) {
			ex.printStackTrace();
		}
	}

以上是“android使用XmlPullParser來解析XML文件的示例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

抚宁县| 凌云县| 涡阳县| 普兰店市| 阳高县| 岢岚县| 承德市| 永寿县| 黔江区| 灵宝市| 新竹县| 罗田县| 同心县| 桃江县| 新晃| 永顺县| 图们市| 任丘市| 常州市| 江津市| 阳西县| 惠来县| 盐津县| 陆良县| 萨迦县| 时尚| 图片| 南木林县| 博白县| 万宁市| 延寿县| 宣武区| 龙州县| 明溪县| 手游| 兴安县| 大余县| 临夏市| 新乡县| 社会| 江源县|