Android中xml檔案讀寫Android XML檔案讀寫

來源:互聯網
上載者:User
Android XML檔案讀寫

 

<?xml version="1.0" encoding="UTF-8"?>
<persons>
    <person id="23">
        <name>eboy</name>
        <age>22</age>
    </person>
    <person id="24">
        <name>Frr</name>
        <age>20</age>
    </person>
</persons>

 

 

 package com.eboy.service;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;

import com.eboy.domain.Person;

import android.util.Xml;

public class PersonService {
    public static List<Person> getPersons(InputStream xml) throws Exception {        
        List<Person> persons = null;
        Person person = null;
        XmlPullParser pullParser = Xml.newPullParser();
        pullParser.setInput(xml, "UTF-8"); //為Pull解譯器設定要解析的XML資料        
        int event = pullParser.getEventType();
        
        while (event != XmlPullParser.END_DOCUMENT){
            
            switch (event) {
            
            case XmlPullParser.START_DOCUMENT:
                persons = new ArrayList<Person>();                
                break;    
            case XmlPullParser.START_TAG:    
                if ("person".equals(pullParser.getName())){
                    int id = Integer.valueOf(pullParser.getAttributeValue(0));
                    person = new Person();
                    person.setId(id);
                }
                if ("name".equals(pullParser.getName())){
                    String name = pullParser.nextText();
                    person.setName(name);
                }                                
                if ("age".equals(pullParser.getName())){
                    int age = Integer.valueOf(pullParser.nextText());
                    person.setAge(age);
                }
                break;
                
            case XmlPullParser.END_TAG:
                if ("person".equals(pullParser.getName())){
                    persons.add(person);
                    person = null;
                }
                break;
                
            }
            
            event = pullParser.next();
        }
        
        
        return persons;
    }
    
    /**
     * 儲存資料到xml檔案中
     * @param persons
     * @param out
     * @throws Exception
     */
    public static void save(List<Person> persons, OutputStream out) throws Exception {
        XmlSerializer serializer = Xml.newSerializer();
        serializer.setOutput(out, "UTF-8");
        serializer.startDocument("UTF-8", true);
        serializer.startTag(null, "persons");        
        for (Person person : persons) {
            serializer.startTag(null, "person");            
            serializer.attribute(null, "id", person.getId().toString());            
            serializer.startTag(null, "name");            
            serializer.text(person.getName().toString());
            serializer.endTag(null, "name");            
            serializer.startTag(null, "age");            
            serializer.text(person.getAge().toString());
            serializer.endTag(null, "age");            
            serializer.endTag(null, "person");
        }        
        serializer.endTag(null, "persons");
        serializer.endDocument();
        out.flush();
        out.close();
    }
}

 

/Files/jxgxy/com.eboy.readwritexml.MainActivity.rar

轉載地址

http://www.cnblogs.com/jxgxy/archive/2012/07/26/2609730.html

 

<?xml version="1.0" encoding="UTF-8"?>
<persons>
    <person id="23">
        <name>eboy</name>
        <age>22</age>
    </person>
    <person id="24">
        <name>Frr</name>
        <age>20</age>
    </person>
</persons>

 

 

 package com.eboy.service;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;

import com.eboy.domain.Person;

import android.util.Xml;

public class PersonService {
    public static List<Person> getPersons(InputStream xml) throws Exception {        
        List<Person> persons = null;
        Person person = null;
        XmlPullParser pullParser = Xml.newPullParser();
        pullParser.setInput(xml, "UTF-8"); //為Pull解譯器設定要解析的XML資料        
        int event = pullParser.getEventType();
        
        while (event != XmlPullParser.END_DOCUMENT){
            
            switch (event) {
            
            case XmlPullParser.START_DOCUMENT:
                persons = new ArrayList<Person>();                
                break;    
            case XmlPullParser.START_TAG:    
                if ("person".equals(pullParser.getName())){
                    int id = Integer.valueOf(pullParser.getAttributeValue(0));
                    person = new Person();
                    person.setId(id);
                }
                if ("name".equals(pullParser.getName())){
                    String name = pullParser.nextText();
                    person.setName(name);
                }                                
                if ("age".equals(pullParser.getName())){
                    int age = Integer.valueOf(pullParser.nextText());
                    person.setAge(age);
                }
                break;
                
            case XmlPullParser.END_TAG:
                if ("person".equals(pullParser.getName())){
                    persons.add(person);
                    person = null;
                }
                break;
                
            }
            
            event = pullParser.next();
        }
        
        
        return persons;
    }
    
    /**
     * 儲存資料到xml檔案中
     * @param persons
     * @param out
     * @throws Exception
     */
    public static void save(List<Person> persons, OutputStream out) throws Exception {
        XmlSerializer serializer = Xml.newSerializer();
        serializer.setOutput(out, "UTF-8");
        serializer.startDocument("UTF-8", true);
        serializer.startTag(null, "persons");        
        for (Person person : persons) {
            serializer.startTag(null, "person");            
            serializer.attribute(null, "id", person.getId().toString());            
            serializer.startTag(null, "name");            
            serializer.text(person.getName().toString());
            serializer.endTag(null, "name");            
            serializer.startTag(null, "age");            
            serializer.text(person.getAge().toString());
            serializer.endTag(null, "age");            
            serializer.endTag(null, "person");
        }        
        serializer.endTag(null, "persons");
        serializer.endDocument();
        out.flush();
        out.close();
    }
}

 

/Files/jxgxy/com.eboy.readwritexml.MainActivity.rar

轉載地址

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.