zoukankan      html  css  js  c++  java
  • 【转】Android中xml文件读写

    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
    有些东西会,但不精通,而我现在要做的就是精通,复习回顾,整理自己的框架,举一反三。。。
  • 相关阅读:
    30张图解: TCP 重传、滑动窗口、流量控制、拥塞控制
    ffmpeg rtp时间戳
    35 张图解:被问千百遍的 TCP 三次握手和四次挥手面试题
    Pinpoint 分布式系统性能监控工具
    图解正向代理、反向代理、透明代理
    实战!我用 Wireshark 让你“看见“ TCP
    IE7的增强插件:IE7Pro
    Net Core 中的HTTP协议详解
    Autofac是一个轻量级的依赖注入的框架
    关于表数据的复制插入TSQL
  • 原文地址:https://www.cnblogs.com/liuzenglong/p/2932512.html
Copyright © 2011-2022 走看看