生成xml的第二种方式——google推荐的XmlSeriali

2019-05-07  本文已影响0人  MengkZhang

需求:生成一个如下的XML文件并保存到SD卡中

image.png

用StringBuffer的组合方式一步一步生成该XML文件

核心代码

          //[1]实例化XmlSerializer
        XmlSerializer xmlSerializer = Xml.newSerializer();

        try {
            //[2]设置参数 存储XML文件到SD卡中
            File file = new File(Environment.getExternalStorageDirectory().getPath(), "smsbackup2.xml");
            FileOutputStream fos = new FileOutputStream(file);
            xmlSerializer.setOutput(fos,"utf-8");

            //[3]写XML文件头部信息
            xmlSerializer.startDocument("utf-8",true);

            //[4]写smss节点
            xmlSerializer.startTag(null,"smss");

            //[5]写sms节点
            for (Smss smss : mSmssList) {

                xmlSerializer.startTag(null,"sms");

                //[6]写name等属性节点
                xmlSerializer.startTag(null,"name");
                xmlSerializer.text(smss.getName());
                xmlSerializer.endTag(null,"name");

                xmlSerializer.startTag(null,"city");
                xmlSerializer.text(smss.getCity());
                xmlSerializer.endTag(null,"city");

                xmlSerializer.startTag(null,"age");
                xmlSerializer.text(smss.getAge());
                xmlSerializer.endTag(null,"age");

                xmlSerializer.endTag(null,"sms");

            }

            xmlSerializer.endTag(null,"smss");

            xmlSerializer.endDocument();

            //关闭流
            fos.close();
            Toast.makeText(this, "写文件成功", Toast.LENGTH_SHORT).show();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(this, "文件异常写文件失败", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(this, "IO异常写文件失败", Toast.LENGTH_SHORT).show();
        }
     

程序执行结果导出的XML用ie浏览器打开


image.png

总结:

不要去背API 只要记得XmlSerializer用来生成xml文件即可 使用时查阅google官方API文档即可 部分API如下


image.png

Demo的源码地址: https://github.com/MengkZhang/aboutxml

上一篇 下一篇

猜你喜欢

热点阅读