zoukankan      html  css  js  c++  java
  • pullxml解析

    xml文件:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <root>
     3     <student id="1" group="1">
     4         <name>张三</name>
     5         <sex></sex>
     6         <age>18</age>
     7         <email>zhangsan@163.com</email>
     8         <birthday>1987-06-08</birthday>
     9         <memo>好学生</memo>
    10     </student>
    11     <student id="2" group="2">
    12         <name>李四</name>
    13         <sex></sex>
    14         <age>18</age>
    15         <email>lisi@163.com</email>
    16         <birthday>1987-06-08</birthday>
    17         <memo>好学生</memo>
    18     </student>
    19     <student id="3" group="3">
    20         <name>小王</name>
    21         <sex></sex>
    22         <age>18</age>
    23         <email>xiaowang@163.com</email>
    24         <birthday>1987-06-08</birthday>
    25         <memo>好学生</memo>
    26     </student>
    27     <student id="4" group="4">
    28         <name>小张</name>
    29         <sex></sex>
    30         <age>18</age>
    31         <email>xiaozhang@163.com</email>
    32         <birthday>1987-06-08</birthday>
    33         <memo>好学生</memo>
    34     </student>
    35     <student id="5" group="5">
    36         <name>小明</name>
    37         <sex></sex>
    38         <age>18</age>
    39         <email>xiaoming@163.com</email>
    40         <birthday>1987-06-08</birthday>
    41         <memo>好学生</memo>
    42     </student>
    43 </root>

    bean:

     1 package com.parsexml.entity;
     2 
     3 public class Student {
     4     
     5     private int id;
     6     private int group;
     7     private String name;
     8     private String sex;
     9     private int age;
    10     private String email;
    11     private String memo;
    12     private String birthday;
    13     public int getId() {
    14         return id;
    15     }
    16     public void setId(int id) {
    17         this.id = id;
    18     }
    19     public int getGroup() {
    20         return group;
    21     }
    22     public void setGroup(int group) {
    23         this.group = group;
    24     }
    25     public String getName() {
    26         return name;
    27     }
    28     public void setName(String name) {
    29         this.name = name;
    30     }
    31     public String getSex() {
    32         return sex;
    33     }
    34     public void setSex(String sex) {
    35         this.sex = sex;
    36     }
    37     public int getAge() {
    38         return age;
    39     }
    40     public void setAge(int age) {
    41         this.age = age;
    42     }
    43     public String getEmail() {
    44         return email;
    45     }
    46     public void setEmail(String email) {
    47         this.email = email;
    48     }
    49     public String getMemo() {
    50         return memo;
    51     }
    52     public void setMemo(String memo) {
    53         this.memo = memo;
    54     }
    55     public String getBirthday() {
    56         return birthday;
    57     }
    58     public void setBirthday(String birthday) {
    59         this.birthday = birthday;
    60     }
    61     
    62 }

    java文件:

      1 package com.parsexml;
      2 
      3 import java.io.IOException;
      4 import java.util.ArrayList;
      5 import java.util.List;
      6 
      7 import org.xmlpull.v1.XmlPullParser;
      8 import org.xmlpull.v1.XmlPullParserException;
      9 import org.xmlpull.v1.XmlPullParserFactory;
     10 
     11 import com.parsexml.entity.Student;
     12 
     13 public class PullParseXml {
     14     
     15     
     16     public List<Student> PullParseXML(){
     17         
     18         List<Student> list=null;
     19         Student student = null;
     20         
     21         //构建XmlPullParserFactory
     22         try {
     23             XmlPullParserFactory pullParserFactory=XmlPullParserFactory.newInstance();
     24             //获取XmlPullParser的实例
     25             XmlPullParser xmlPullParser=pullParserFactory.newPullParser();
     26             //设置输入流  xml文件
     27             xmlPullParser.setInput(Thread.currentThread().getContextClassLoader().getResourceAsStream("Student.xml"), "UTF-8");
     28             
     29             //开始
     30             int eventType=xmlPullParser.getEventType();
     31             
     32             try {
     33                 while(eventType!=XmlPullParser.END_DOCUMENT){
     34                     String nodeName=xmlPullParser.getName();
     35                     switch (eventType) {
     36                     //文档开始
     37                     case XmlPullParser.START_DOCUMENT:
     38                         list=new ArrayList<Student>();
     39                         break;
     40                     //开始节点
     41                     case XmlPullParser.START_TAG:
     42                         //判断如果其实节点为student
     43                         if("student".equals(nodeName)){
     44                             //实例化student对象
     45                             student=new Student();
     46                             //设置Id属性
     47                             student.setId(Integer.parseInt(xmlPullParser.getAttributeValue(0)));
     48                             //设置Group属性
     49                             student.setGroup(Integer.parseInt(xmlPullParser.getAttributeValue(1)));
     50                         }else if("name".equals(nodeName)){
     51                             //设置name
     52                             student.setName(xmlPullParser.nextText());
     53                         }else if("sex".equals(nodeName)){
     54                             //设置sex
     55                             student.setSex(xmlPullParser.nextText());
     56                         }else if("age".equals(nodeName)){
     57                             //设置age
     58                             student.setAge(Integer.parseInt(xmlPullParser.nextText()));
     59                         }else if("email".equals(nodeName)){
     60                             //设置email
     61                             student.setEmail(xmlPullParser.nextText());
     62                         }else if("birthday".equals(nodeName)){
     63                             //设置birthday
     64                             student.setBirthday(xmlPullParser.nextText());
     65                         }else if("memo".equals(nodeName)){
     66                             //设置memo属性
     67                             student.setMemo(xmlPullParser.nextText());
     68                         }
     69                         break;
     70                     //结束节点
     71                     case XmlPullParser.END_TAG:
     72                         if("student".equals(nodeName)){
     73                             list.add(student);
     74                             student=null;
     75                         }
     76                         break;
     77                     default:
     78                         break;
     79                     }
     80                     eventType=xmlPullParser.next();
     81                 }
     82             } catch (NumberFormatException e) {
     83                 e.printStackTrace();
     84             } catch (IOException e) {
     85                 e.printStackTrace();
     86             }
     87         } catch (XmlPullParserException e) {
     88             e.printStackTrace();
     89         }
     90 
     91         return list;
     92     }
     93     
     94     public static void main(String[] args) {
     95         List<Student> list=new PullParseXml().PullParseXML();
     96         for(Student student:list){
     97             System.out.println("id:"+student.getId()+"\tgroup:"+student.getGroup()+"\tname:"+student.getName()+"\tsex:"+student.getSex()+"\tage:"+student.getAge()+"\temail:"+student.getEmail()+"\tbirthday:"+student.getBirthday()+"\tmemo:"+student.getMemo());
     98         }
     99     }
    100     
    101 }
  • 相关阅读:
    Codeforces Round #634 E2. Three Blocks Palindrome (hard version)(双指针/前缀和/二分/好题)
    Codeforces Round #634 D. Anti-Sudoku(构造/水)
    自动化----docker
    自动化---zabbbix监控
    awk使用
    自动化-KVM安装
    nginx教程以及正则
    自动化-cobbler
    Python
    自动化kickstart
  • 原文地址:https://www.cnblogs.com/xmb7/p/2938583.html
Copyright © 2011-2022 走看看