昆明java培训
达内昆明广州春城路

18487146383

热门课程

Java-->xml的pull解析

  • 时间:2016-08-31
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明Java培训机构的老师给大家讲xml的pull解析

--> pull解析器是android内置的解析器,解析原理与sax类似

--> xml文件student.xml:

1 <?xml version="1.0" encoding="UTF-8"?>

2 <!--有三个学生:姓名、年龄、性别。把这三个学生的信息用xml表示出来-->

3 <students>

4    <student name="zhangsan">

5        <age>18</age>

6        <sex>男</sex>

7    </student>

8    <student name="lisi">

9        <age>22</age>

10        <sex>女</sex>

11    </student>

12    <student name="wangwu">

13        <age>20</age>

14        <sex>男</sex>

15    </student>

16 </students>

--> Student类:

Student

--> Test测试类:

1 package com.dragon.java.pullparse;

2

3 import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;

4 import static org.xmlpull.v1.XmlPullParser.END_TAG;

5 import static org.xmlpull.v1.XmlPullParser.START_TAG;

6 import static org.xmlpull.v1.XmlPullParser.TEXT;

7

8 import java.io.FileReader;

9 import java.io.IOException;

10 import java.util.ArrayList;

11 import java.util.List;

12

13 import org.xmlpull.v1.XmlPullParser;

14 import org.xmlpull.v1.XmlPullParserException;

15 import org.xmlpull.v1.XmlPullParserFactory;

16

17 /*

18 * pull解析器

19 */

20 public class Test {

21    public static void main(String[] args) throws XmlPullParserException,

22            IOException {

23        List<Student> list = null;

24        Student student = null;

25        // 1、获取一个XmlPullParser解析器

26        XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); //调用解析器工厂的静态方法,创建一个解析器工厂

27        XmlPullParser parser = factory.newPullParser(); //创建一个pull解析器

28        parser.setInput(new FileReader(

29                "D:/workspace/08-25/src/com/dragon/java/xml/students.xml")); //设置一个输入流,告诉要解析的xml数据的来源

30        int event = parser.getEventType(); //获取当前事件的类型

31        while (event != END_DOCUMENT) { //当碰到文档结束的时候,结束循环

32            switch (event) {

33            case START_TAG:

34                String tag = parser.getName();

35                if (tag.equals("students")) {

36                    list = new ArrayList<>();

37                } else if (tag.equals("student")) {

38                    student = new Student();

39                    student.setName(parser.getAttributeValue(null, "name")); //参数1:是命名空间,如果命名空间,则传入null。参数2:属性的名字

40                    list.add(student);

41                } else if (tag.equals("age")) {

42                    student.setAge(Integer.parseInt(parser.nextText())); //获取当前事件后面的text事件,text的值

43                } else if (tag.equals("sex")) {

44                    student.setSex(parser.nextText());

45                }

46                break;

47            case END_TAG:

48                break;

49            case TEXT:

50                break;

51            default:

52                break;

53            }

54            event = parser.next();

55        }

56        for (Student student2 : list) {

57            System.out.println(student2);

58        }

59    }

60 }

学Java开发就到昆明达内Java培训班!了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:Nginx做负载均衡
下一篇:适合初学者java基础知识

电脑编程学什么专业好?java好吗?【达内java培训】

上java培训有用吗?怎么衡量?【达内培训】

昆明java培训机构怎么选?昆明达内java培训怎么样?

学Java自学还是达内培训机构好?

选择城市和中心
贵州省

广西省

海南省

台湾