zoukankan      html  css  js  c++  java
  • 用Pull解析Xml文件

     1 public List<Person> DecodeXml(String filename) throws XmlPullParserException
     2     {
     3         // 获取当前程序的asset对象
     4         AssetManager am = context.getAssets();
     5         
     6         List<Person> pList = new ArrayList<Person>();
     7         
     8         try {
     9             
    10             //打开asset中文件为filename的文件,并以InputStream流的数据返回
    11             InputStream is = am.open(filename);
    12             
    13             //new一个XmlPullParser对象实例
    14             XmlPullParser xpp = Xml.newPullParser();
    15             //用要解析的Xml文件流初始化new出来的XmlPullParser实例对象
    16             xpp.setInput(is, "utf-8");
    17             
    18             //开始解析
    19             int type = xpp.getEventType();//得到xpp的当前事件类型
    20             Person person = null;
    21             
    22             while(type!= XmlPullParser.END_DOCUMENT){//当前节点不等于xml文档的末尾时进行
    23                 
    24                 if(type == XmlPullParser.START_TAG)//当当前标签是一个信息节点的开始标签时,这里也就是一个person节点的开始时
    25                 {
    26                     //创建一个Person对象用来存储 数据
    27                     person = new Person();
    28                     
    29                     if("person".equals(xpp.getName())){//当前类型是是<person>标签是
    30                         
    31                         person.setId(Integer.parseInt(xpp.getAttributeValue(0)));//获取当前标签的第一个属性
    32                     }
    33                     else if("name".equals(xpp.getName())){
    34                         
    35                         person.setName(xpp.nextText());//获取当前标签对中的内容如<name>aaa</name>得到的内容是aaa
    36                     }
    37                     else if("age".equals(xpp.getName())){
    38                         
    39                         person.setAge(Integer.parseInt(xpp.nextText()));
    40                     }
    41                     else if("sex".equals(xpp.getName())){
    42                         
    43                         person.setSex(xpp.nextText());
    44                     }    
    45                 }
    46                 
    47                 if(type == XmlPullParser.END_TAG){//当前类型是一个信息节点的末尾标签时,这里也就是</pserson>
    48                     
    49                     pList.add(person);
    50                 }
    51                 
    52                 //跳到下一个标签
    53                 type = xpp.next();
    54             }
    55             
    56             return pList;
    57             
    58         } catch (IOException e) {
    59         
    60             e.printStackTrace();
    61             return null;
    62         }
    63         
    64     }
  • 相关阅读:
    idea + springboot 的java后台服务器通过小米推送
    python编程之禅
    温故而知新-MySQL高级编程
    温故而知新-mysql的一些语法show,describe,explain,fulltext
    温故而知新-PHP文件操作函数
    温故而知新-正则单词和strlen
    php使用tcpdf实现在线PDF功能
    温故而知新-array_walk和sizeof和array_count_values()和extract()
    温故而知新-strtok函数
    mysql中的blob和text区别
  • 原文地址:https://www.cnblogs.com/luoyaqi/p/4321743.html
Copyright © 2011-2022 走看看