这是第一种方式:StringBuilder
//以拼接字符串方式生成xml文件,面向过程
public void genXml(View v){
// <?xml version="1.0" encoding="UTF-8" standalone="true"?>
// <map>
// <boolean value="false" name="isChecked"/>
// </map>
StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"true\"?>");
sb.append("<map>");
sb.append("<boolean value=\"false\" name=\"isChecked\"/>");
sb.append("</map>");
String xml = sb.toString();
Toast.makeText(this, xml, Toast.LENGTH_LONG).show();
}
这是第二种方式:XmlSerializer
public void genXml2(View v){
try {
//获得一个序列化器
XmlSerializer xmlSerializer = Xml.newSerializer();
//android应用程序中,默认只将文件保存在/data/data/自己的包名/
File file = new File("/data/data/com.itheima.genxml/test.xml");
FileOutputStream fos = new FileOutputStream(file);
//将输出流传给序列化器对象,并指定编码
xmlSerializer.setOutput(fos, "utf-8");
//写文档开头
xmlSerializer.startDocument("utf-8", true);
//写文档的开始标签
xmlSerializer.startTag(null, "map");
//写文档的开始标签
xmlSerializer.startTag(null, "boolean");
xmlSerializer.attribute(null, "value","false");
xmlSerializer.attribute(null, "name","isChecked");
//写结束标签
xmlSerializer.endTag(null, "boolean");
//写结束标签
xmlSerializer.endTag(null, "map");
//文档结束
xmlSerializer.endDocument();
fos.close();
Toast.makeText(MainActivity.this, "生成成功", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
下面这个是效果图: