zoukankan      html  css  js  c++  java
  • Android-Xml文件生成,Xml数据格式写入

    在上一篇博客,Android-XML格式描述,介绍来XML在Android中的格式;

    生成xml文件格式数据,Android提供了Xml.newSerializer();,可以理解为Xml序列化;

    序列化:把内存里面的数据(file,databases,xml 等等) 丢给某一个地方;
    反序列化:把某个地方的数据(file,databases,xml 等等),拿到内存中;

    既然是Android操作Xml,就用Android所提供的API,不用Java所提供的API,DOM解析,SAX解析了;

    @Override
        public void onClick(View v) {
    
            // 模拟20条Person数据
            List<Person> persons = new ArrayList<Person>();
            for (int i=0; i<20; i++) {
                persons.add(new Person(i, "zhangsan" + i, i+10));
            }
            Log.d(TAG, "persons.size():" + persons.size()); // persons.size():20
    
            try {
                // 如何创建xml文件,然后把这20条数据,写入xml文件里面去,一定是去看Android提供的API
                XmlSerializer serializer = Xml.newSerializer();
                // 指定流目录
                OutputStream os = openFileOutput("persons.xml", Context.MODE_PRIVATE);
                // 设置指定目录
                serializer.setOutput(os, "UTF-8");
    
                // 开始写入Xml格式数据
                // 开始文档
                // 参数一:指定编码格式   参数二:是不是独立的xml(这个xml与其他xml是否有关联)
                serializer.startDocument("UTF-8", true);
    
                // 开始根标签
                // 参数一:命名空间   参数二:标签名称
                serializer.startTag(null, "persons");
    
                for (Person person : persons) {
                    // 开始子标签
                    serializer.startTag(null, "person");
    
                    // 设置属性
                    serializer.attribute(null, "id", String.valueOf(person.getId()));
    
                    // 设置name
                    // 开始name标签
                    serializer.startTag(null, "name");
                    // 写入值
                    serializer.text(person.getName());
                    // 结束name标签
                    serializer.endTag(null, "name");
    
                    // 设置age
                    // 开始age标签
                    serializer.startTag(null, "age");
                    // 写入age值
                    serializer.text(String.valueOf(person.getAge()));
                    // 结束age标签
                    serializer.endTag(null, "age");
    
                    // 结束子标签
                    serializer.endTag(null, "person");
                }
    
                // 结束根标签
                serializer.endTag(null, "persons");
    
                // 结束文档
                serializer.endDocument();
           }catch (Exception e) {
               e.printStackTrace();
           }
        }

    执行后的结果: 

    打开看看: 

  • 相关阅读:
    2.Android之按钮Button和编辑框EditText学习
    《DSP using MATLAB》Problem 3.8
    《DSP using MATLAB》Problem 3.7
    《DSP using MATLAB》Problem 3.6
    《DSP using MATLAB》Problem 3.5
    《DSP using MATLAB》Problem 3.4
    《DSP using MATLAB》Problem 3.3
    《DSP using MATLAB》Problem 3.2
    《DSP using MATLAB》Problem 3.1
    《DSP using MATLAB》Problem 2.20
  • 原文地址:https://www.cnblogs.com/android-deli/p/10172029.html
Copyright © 2011-2022 走看看