您好,登錄后才能下訂單哦!
這篇“android使用XmlPullParser來解析XML文件的示例”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“android使用XmlPullParser來解析XML文件的示例”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。
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文件的示例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。