XmlPullParser
1.简介:pull解析是android推荐的解析方式。他是一个接口,所以使用的时候多用XmlPullParserFactory来实例化
1 /** 2 * 获得parser对象 3 */ 4 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 5 XmlPullParser parser = factory.newPullParser();
2.设置命名标准控件
1 factory.setNamespaceAware(true);
3.读取is流并,设置编码
1 parser.setInput(is, "utf-8");
4.主要方法
1 /** 2 * 获得下一个节点,用于访问较高级别的标签,只能获得下面四个int值 3 */ 4 parser.next(); 5 /** 6 * 将返回一下四个属性 7 */ 8 START_TAG:读取了一个开始标签。 9 TEXT:返回文本信息,可以使用getText()方法获得信息。 10 END_TAG:读取了一个结束标签。 11 END_DOCUMENT:文档读取结束。
5.根据xml的特点和pull解析的特点,有如下demo:
1 public static List<Tittle_Content_contentInfo> xmlpull(InputStream is) 2 throws XmlPullParserException, IOException { 3 // 保存联系人 4 ArrayList<Tittle_Content_contentInfo> infos = new ArrayList<Tittle_Content_contentInfo>(); 5 /** 6 * 获得parser对象 7 */ 8 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 9 XmlPullParser parser = factory.newPullParser(); 10 factory.setNamespaceAware(true); 11 parser.setInput(is, "utf-8"); 12 parser.nextTag(); 13 parser.nextTag(); 14 parser.nextTag(); 15 if ("succ".equals(parser.getAttributeValue(0))) { 16 getInfo(parser, infos); 17 } else { 18 return null; 19 } 20 return infos; 21 } 22 23 /** 24 * 获得xml信息 25 * 26 * @param parser 27 * @throws XmlPullParserException 28 * @throws IOException 29 */ 30 public static void getInfo(XmlPullParser parser, 31 List<Tittle_Content_contentInfo> infos) 32 throws XmlPullParserException, IOException { 33 Tittle_Content_contentInfo info = null; 34 int type = parser.next(); 35 while (type != XmlPullParser.END_DOCUMENT) { 36 if (XmlPullParser.START_TAG == type 37 && "contentinfo".equals(parser.getName())) { 38 info = new Tittle_Content_contentInfo(); 39 parser.nextTag(); 40 info.setContentid(parser.getAttributeValue(0)); 41 parser.nextTag(); 42 parser.nextTag(); 43 info.setBiaoti(parser.getAttributeValue(0)); 44 parser.nextTag(); 45 parser.nextTag(); 46 info.setNeirong(parser.getAttributeValue(0)); 47 parser.nextTag(); 48 parser.nextTag(); 49 info.setContentaddress(parser.getAttributeValue(0)); 50 infos.add(info); 51 } 52 type = parser.next(); 53 } 54 }
数据接口:http://gusong.ltzsxx.com/GetContent.jsp?classid=1