解析以下的一个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文件的内容,更多相关内容请关注PHP中文网(www.php.cn)!

更多相关文章

  1. Android短彩信源码解析-短信发送流程(三)

随机推荐

  1. [置顶] android app 快速接入支付宝流程(a
  2. How To Debug Android Widgets
  3. android 之 adb shell的使用
  4. H5判断 移动端 是android还是ios
  5. Eclipse 连接 MUMU模拟器
  6. AndroidR系统启动详细分析-学习笔记
  7. Activity配置属性
  8. C盘瘦身
  9. android 学习笔记: manifest.xml中声明多
  10. Android(安卓)屏幕适配解决方案