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

    这里写图片描述


    生成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();
           }
        }

    执行后的结果:
    这里写图片描述


    打开看看:
    这里写图片描述


    谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
    刘德利CSDN博客, http://blog.csdn.net/u011967006

  • 相关阅读:
    后缀数组模板~~~
    CF 196 Div2 D&&HDU 4679 && HDU 2196
    .......
    ~~~~~
    主站点~~~~
    C++抽象,封装,继承,多态
    查缺补漏知识点(二)
    Qt的简介
    C语言指针及C++引用
    C++单例模式
  • 原文地址:https://www.cnblogs.com/android-deli/p/10322166.html
Copyright © 2011-2022 走看看