Android(安卓)生成xml文件
16lz
2022-07-27
Android解析xml文件
两种方式生成:
1、通过StringBuffer直接以追加字符串的方式生成XML文件
public class MainActivity extends Activity { List message; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建10条虚拟短信 message = new ArrayList(); for (int i = 0; i < 10; i++) { Sms sms = new Sms("第" + i + "条短信", System.currentTimeMillis() + "", "1", "" + i + i + i); message.add(sms); } } public void click(View v) { File file = new File(Environment.getExternalStorageDirectory(), "backup.xml"); try { FileOutputStream fos = new FileOutputStream(file); StringBuffer sb = new StringBuffer(); // 添加xml头 sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>"); // 添加根节点 sb.append(""); // 每一条短信添加一个sms节点 for (Sms sms : message) { sb.append(""); sb.append(""); sb.append(sms.getBody()); sb.append(""); sb.append(""); sb.append(sms.getDate()); sb.append(" "); sb.append(""); sb.append(sms.getAddress()); sb.append(""); sb.append(""); sb.append(sms.getType()); sb.append(" "); sb.append(" "); } sb.append(" "); fos.write(sb.toString().getBytes()); fos.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
2、利用XmlSerializer类来生成XML文件
public class MainActivity extends Activity { List message; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建10条虚拟短信 message = new ArrayList(); for (int i = 0; i < 10; i++) { Sms sms = new Sms("第" + i + "条短信", System.currentTimeMillis() + "", "1", "" + i + i + i); message.add(sms); } } public void click(View v) { File file = new File(Environment.getExternalStorageDirectory(), "backup1.xml"); try { FileOutputStream fos = new FileOutputStream(file); // 获取xml序列化器 XmlSerializer xs = Xml.newSerializer(); xs.setOutput(fos, "utf-8"); //生成xml头 xs.startDocument("utf-8", true); //添加xml根节点 xs.startTag(null, "message"); for (Sms sms : message) { xs.startTag(null, "sms"); xs.startTag(null, "body"); xs.text(sms.getBody()); xs.endTag(null, "body"); xs.startTag(null, "date"); xs.text(sms.getDate()); xs.endTag(null, "date"); xs.startTag(null, "address"); xs.text(sms.getAddress()); xs.endTag(null, "address"); xs.startTag(null, "type"); xs.text(sms.getType()); xs.endTag(null, "type"); xs.endTag(null, "sms"); } xs.endTag(null, "message"); //生成xml头 xs.endDocument(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
最终生成的xml格式:
<?xml version="1.0" encoding="UTF-8" standalone="true"?> 第0条短信 1465041254178 000 1 第1条短信 1465041254179 111 1 第2条短信 1465041254179 222 1
数据载体:
public class Sms { private String body; private String date; private String type; private String address; public Sms(String body, String date, String type, String address) { super(); this.body = body; this.date = date; this.type = type; this.address = address; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}
更多相关文章
- android打电话发短信
- Android(安卓)命令行编译、打包生成apk文件
- [APP] Android(安卓)开发笔记 006-使用短信验证SDK进行短信验证
- Android(OpenCV) NDK开发: 0xdeadbaad(code=1)错误 及 关闭armea
- Android(安卓)ROM的创建和烧录
- Android(安卓)开机自启动程序
- Android(安卓)的 Recovery 分析
- android使用pull解析器来解析和生成xml文件
- android与.NET webservice