zoukankan      html  css  js  c++  java
  • Android解析xml——pull

    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

  • 相关阅读:
    java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or.....
    cas单点登录防止登出退出后刷新后退ticket失效报500错
    IDEA远程调试服务器代码
    阿里的fastJson.jar jsonArray 和 list 互转
    获取多<a/>标签id值的点击事件
    redis常用命令
    SuperDiamond在JAVA项目中的三种应用方法实践总结
    Redis 集群环境的搭建
    eclipse中一些常见svn图标的含义
    【转】Windows下PATH等环境变量详解
  • 原文地址:https://www.cnblogs.com/qinghuaideren/p/3068730.html
Copyright © 2011-2022 走看看