zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    mysql性能调优
    java面试大全
    JVM调优总结
    大数据行业跳槽面试前你需要做什么
    什么是分布式锁?实现分布式锁的方式
    如何保障mysql和redis之间的数据一致性?
    数据倾斜的原因和解决方案
    hive优化
    c# 系统换行符
    12种增强CSS技能并加快开发速度的资源
  • 原文地址:https://www.cnblogs.com/jxgxy/p/2609730.html
Copyright © 2011-2022 走看看