Android解析xml——pull

来源:互联网 发布:360游戏优化器有用吗 编辑:程序博客网 时间:2024/06/09 14:15

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 parser27      * @throws XmlPullParserException28      * @throws IOException29      */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 == type37                     && "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

 

0 0
原创粉丝点击