首页 > 其他分享 >Android Xml文件生成,Xml数据格式写入

Android Xml文件生成,Xml数据格式写入

时间:2023-06-22 14:36:03浏览次数:41  
标签:Xml xml API file 数据格式 Android 序列化


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

执行后的结果: 

Android Xml文件生成,Xml数据格式写入_数据_02


打开看看: 

Android Xml文件生成,Xml数据格式写入_数据_03

谢谢大家的观看,更多精彩技术博客,会不断的更新,感谢各位关注。


标签:Xml,xml,API,file,数据格式,Android,序列化
From: https://blog.51cto.com/u_16163510/6534859

相关文章

  • Android-Kotlin-When&类型推断
    Kotlin的when表达式TextEngine描述文字处理对象:packagecn.kotlin.kotlin_base02/***描述文字处理对象**valtextContent传入进来的文字内容val是常量*/classTextEngine(valtextContent:String){/***处理文字,然后返回*返回完整的字符串......
  • Android-kotlin的继承
    上一篇博客讲了Android-kotlin的配置/入门,然后简单的实现了一个计算器功能。今天我们来讲讲kotlin中的继承是怎样的。1.先看一个案例,子类使用到父类的资源【案例一】父类张翠山:packagecn.kotlin.kotlin_oop03/***描述父对象:张翠山**personDescribe此人的简介/var......
  • Android-kotlin-具名参数
    先看一个这样的案例,【案例一】:packagecn.kotlin.kotlin_base05funshowAction1(country:String,volk:String){println("我的祖国是${country},我的民族是$volk")}funshowAction2(country:String,volk:String){println("我的祖国是${country},我的民族是......
  • 万事俱备面饿了么Android!面完哭了呜呜呜,还是美团香!
    大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助。最近跟一个朋友聊天,他漫不经心地复习了几个月,就去参加了饿了么面试,第二面结束后,嗯,挂了…当天怒清购物车,卸载饿死了么。下面是他回忆整理的凉经:一面(全都会)1.点击图标,应用打......
  • Android-Kotlin-区间与FOR&LIST&MAP简单使用
    区间与for:packagecn.kotlin.kotlin_base04/***区间与for*/funmain(args:Array<String>){/***Kotlin中提供了区间,例如:存入1到100,在Java中可能要写多行代码,而在Kotlin中很简单,代码如下*1..100*/varnumbers=1..100/***......
  • Android-Kotlin-递归与尾递归
    递归:阶乘计算:/***阶乘:*1的阶乘是1,因为1往下走一个楼梯就是0了*2的阶乘是2*1*3的继承是3*2*1*4的继承是4*3*2*1*5的阶乘是5*4*2*1*/packagecn.kotlin.kotlin_base06......
  • Android-引导用户指纹录入
    根据不同的手机,跳转到指纹录入界面,如果没有检测到手机的品牌,就提醒用户手动去指纹录入:首先描述手机信息检测对象,PhoneInfoCheck.java:packagecom.esandinfo;importandroid.app.AlertDialog;importandroid.content.ComponentName;importandroid.content.Context;importandr......
  • Android—MySQLiteOpenHelper源码解读
    MySQLiteOpenHelper:直接放上源码,解读在注释里packagecom.esandinfo;importandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.util.Log;publicclassMySQLiteOpenHelperextends......
  • 腾讯Android岗三面:EventBus 发送的消息,如何做到线程切换?
    一.前言EventBus是一个基于观察者模式的事件订阅/发布框架,利用EventBus可以在不同模块之间,实现低耦合的消息通信。EventBus因为其使用简单且稳定,被广泛应用在一些生产项目中。通常我们就是使用EventBus分发一些消息给消息的订阅者,除此之外我们还可以通过EventBus将消息传......
  • Android:教你如何避免解决WebView内存泄漏
    一直听说WebView使用不当容易造成内存泄漏,网上有很多针对内存泄漏的解决方案,比较多的是在Activity.onDestroy的时候将WebView从View树中移除,然后再调用WebView.destroy方法:overridefunonDestroy(){valparent=webView?.parentif(parentisViewGroup){......