当前位置:编程学习 > XML/UML >>

Android[中级教程]第五章 XML解析之PULL解析器

 

这一章我们来学习Android中的XML解析器,Android中自带了三个XML解析器,有PULL,SAX,DOM解析器,其中PULL跟SAX都是以事件作为驱动导向的解析器,优点是占用内存小,处理速度快,DOM是将整个XML放入内存中再解析,处理速度要稍差一些,但DOM也有自己的优点,可以在解析的时候适当增加节点.OK,我们先来看一下我们要解析的xml文件

 

 

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

<persons> 

    <person id = "1"> 

        <status>大徙弟</status> 

        <name>孙悟空</name> 

        <tool>金箍棒</tool> 

        <number>杀死了50只妖怪</number> 

    </person> 

     

    <person id = "2"> 

        <status>二徙弟</status> 

        <name>猪八戒</name> 

        <tool>九齿钉耙</tool> 

        <number>杀死了40只妖怪</number> 

    </person> 

     

    <person id = "3"> 

        <status>三徙弟</status> 

        <name>沙和尚</name> 

        <tool>降妖宝杖</tool> 

        <number>杀死了30只妖怪</number> 

    </person> 

 

</persons> 

这里面定义了一些个人的信息和其他具体信息,好了,存入模拟器的SD目录下,接下来,我们先定义JavaBean,Person.java

 

www.zzzyk.com

public class Person 

    private String id; 

    private String status; 

    private String name; 

    private String tool; 

    private String number; 

     

 

    public String getId() 

    { 

        return id; 

    } 

    public void setId(String id) 

    { 

        this.id = id; 

    } 

    public String getStatus() 

    { 

        return status; 

    } 

    public void setStatus(String status) 

    { 

        this.status = status; 

    } 

    public String getName() 

    { 

        return name; 

    } 

    public void setName(String name) 

    { 

        this.name = name; 

    } 

    public String getTool() 

    { 

        return tool; 

    } 

    public void setTool(String tool) 

    { 

        this.tool = tool; 

    } 

    public String getNumber() 

    { 

        return number; 

    } 

    public void setNumber(String number) 

    { 

        this.number = number; 

    } 

    @Override 

    public String toString() 

    { 

        return "Person [id=" + id + ", status=" + status + ", name=" + name 

                + ", tool=" + tool + ", number=" + number + "]"; 

    } 

     

对应上面xml的文件中的数据,接下来就是重点喽,要好好学哦,呵呵,PULL解析类PullHandler.java

 

 

import java.io.InputStream; 

import java.util.ArrayList; 

import java.util.List; 

 

import org.xmlpull.v1.XmlPullParser; 

 

import android.util.Xml; 

 

public class PullHandler 

    private InputStream input; 

    private List<Person> persons; 

    private Person person; 

 

    public PullHandler() 

    { 

    } 

 

    public void setInput(InputStream input) 

    { 

        this.input = input; 

    } 

 

    public PullHandler(InputStream input) 

    { 

        this.input = input; 

    } 

 

    public List<Person> getPersons() 

    { 

        try 

        { 

            XmlPullParser parser = Xml.newPullParser(); 

            parser.setInput(input, "UTF-8"); 

            int eventType = parser.getEventType(); 

 

            while (eventType != XmlPullParser.END_DOCUMENT) 

            { 

 

                switch (eventType) 

                { 

                //XmlPullParser.START_DOCUMENT表示开始文档事件 

                case XmlPullParser.START_DOCUMENT: 

 

        

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,