android之PULL解析xml文档

在PULLParser.java中

public class PULLParser
{
    public List<Person> getPersons(InputStream inputStream) throws Throwable
    {
        List<Person> persons = null;
        Person person =    null;//初始化一下
        XmlPullParser pullParser = Xml.newPullParser();
        pullParser.setInput(inputStream, "UTF-8");
        //产生第一个事件
        int eventType = pullParser.getEventType();
        while(eventType != XmlPullParser.END_DOCUMENT)
        {
            switch (eventType)
            {
            case XmlPullParser.START_DOCUMENT:
                persons = new ArrayList<Person>();
                break;
            case XmlPullParser.START_TAG:
                //获取当前指向的元素名称
                String name=pullParser.getName();
                if(name.equals("person"))
                {
                    person = new Person();
                    person.setId(new Integer(pullParser.getAttributeValue(0)));
                }
                if(person != null)
                {
                    if(name.equals("name"))
                    {
                        person.setName(pullParser.nextText());
                        
                    }
                    if(name.equals("age"))
                    {
                        person.setAge(new Short(pullParser.nextText()));
                        
                    }
                }
                break;
            case XmlPullParser.END_TAG:
                if(pullParser.getName().equals("person"))
                {
                    persons.add(person);
                    person=null;
                }
            default:
                break;
            }
            eventType=pullParser.next();
        }
        return persons;
    }
}

在单元测试中

public void testPULL() throws Throwable
    {
        PULLParser pullParser = new PULLParser();
        InputStream inputStream = getClass().getClassLoader()
                .getResourceAsStream("myxml.xml");
        List<Person> persons = pullParser.getPersons(inputStream);
        for (Person person : persons)
        {
            Log.i(TAG, person.toString());
        }
    }


你可能感兴趣的:(android,pull,解析XML文档)