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