课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > Java-->xml的pull解析
  • Java-->xml的pull解析

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

  • 昆明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--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56