Android生成xml

Android生成xml

XmlSerializer

    //使用XmlSerializer来序列化xml文件
    public static boolean backupSms_android(Context context){
        
        try{
            
            //0.获取短信数据
            ArrayList<SmsBean> allSms = SmsDao.getAllSms();
            //1.通过Xml获取一个XmlSerializer对象
            XmlSerializer xs = Xml.newSerializer();
            //2.设置XmlSerializer的一些参数,比如:设置xml写入到哪个文件中
            //os:xml文件写入流   encoding:流的编码
            xs.setOutput(context.openFileOutput("backupsms2.xml", Context.MODE_PRIVATE), "utf-8");
            //3.序列化一个xml的声明头
            //encoding:xml文件的编码  standalone:是否独立
            xs.startDocument("utf-8", true);
            //4.序列化一个根节点的开始节点
            //namespace:命名空间  name: 标签的名称
            xs.startTag(null, "Smss");
            //5.循环遍历list集合序列化一条条短信
            
                for (SmsBean smsBean : allSms) {
                    xs.startTag(null, "Sms");
                    //name:属性的名称  value:属性值
                    xs.attribute(null, "id", smsBean.id+"");
                    
                    xs.startTag(null, "num");
                    //写一个标签的内容
                    xs.text(smsBean.num);
                    xs.endTag(null, "num");
                    
                    
                    xs.startTag(null, "msg");
                    xs.text(smsBean.msg);
                    xs.endTag(null, "msg");
                    
                    
                    xs.startTag(null, "date");
                    xs.text(smsBean.date);
                    xs.endTag(null, "date");
                    
                    xs.endTag(null, "Sms");
                }

            //6.序列化一个根节点的结束节点
                xs.endTag(null, "Smss");
            //7.将xml写入到文件中,完成xml的序列化
                xs.endDocument();
                return true;

        }catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }