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>[email protected]</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>[email protected]</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>[email protected]</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>[email protected]</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>[email protected]</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 }

 

你可能感兴趣的:(xml解析)