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

  • 相关阅读:
    【题解】 保镖 半平面交
    【题解】 CF1492E Almost Fault-Tolerant Database 暴力+复杂度分析
    【题解】 闷声刷大题 带悔贪心+wqs二分
    【题解】 「WC2021」表达式求值 按位+表达式树+树形dp LOJ3463
    EasyNVR及EasyRTC平台使用Go语言项目管理GoVendor和gomod的使用总结
    一天一个开发技巧:如何基于WebRTC建立P2P通信?
    HTML5如何实现直播推流?值得学习一下!
    java后端学习-第一部分java基础:Scanner的基本使用
    java后端学习-第一部分java基础:三元运算符、运算符优先级、标识符、关键字和保留字
    java后端学习-第一部分java基础:赋值运算符
  • 原文地址:https://www.cnblogs.com/jxgxy/p/2609730.html
Copyright © 2011-2022 走看看