Android 學習之pull解析Xml

來源:互聯網
上載者:User

標籤:android   style   blog   color   os   art   

一、 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();    }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.