首页 > 代码库 > Android 学习之pull解析Xml

Android 学习之pull解析Xml

一、 PUll解析Xml

 

public static List<Person> xmlParser(InputStream xml) throws Exception    {        List<Person> persons=null;        Person p=null;        XmlPullParser parser=Xml.newPullParser();        parser.setInput(xml, "UTF-8");        int event=parser.getEventType();        while(event!=XmlPullParser.END_DOCUMENT)        {            switch (event) {            case XmlPullParser.START_DOCUMENT:                persons=new ArrayList<Person>();                break;            case XmlPullParser.START_TAG:                if (parser.getName().equals("person"))                 {                    p=new Person();                    p.setId(Integer.parseInt(parser.getAttributeValue(0)));                }                if (parser.getName().equals("name"))                 {                    p.setName(parser.nextText());                }                if(parser.getName().equals("age"))                {                    p.setAge(Integer.parseInt(parser.nextText()));                }                break;                case XmlPullParser.END_TAG:                if (parser.getName().equals("person"))                 {                    persons.add(p);                    p=null;                }                break;            }            event=parser.next();        }        return persons;    }

 二、以Xml格式保存信息

public static void saveAsXml(List<Person> persons,OutputStream os)throws Exception    {        XmlSerializer xmlSerial= Xml.newSerializer();        xmlSerial.setOutput(os, "UTF-8");        xmlSerial.startDocument("UTF-8", true);        xmlSerial.startTag(null, "persons");        for(Person person : persons)        {            xmlSerial.startTag(null, "person");            xmlSerial.attribute(null, "id",String.valueOf(person.getId()));            xmlSerial.startTag(null, "name");            xmlSerial.text(person.getName());            xmlSerial.endTag(null, "name");            xmlSerial.startTag(null, "age");            xmlSerial.text(String.valueOf(person.getAge()));            xmlSerial.endTag(null, "age");                    xmlSerial.endTag(null, "person");        }        xmlSerial.endTag(null, "persons");        xmlSerial.endDocument();        os.flush();        os.close();    }