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

更多相关文章

  1. android打电话发短信
  2. Android(安卓)命令行编译、打包生成apk文件
  3. [APP] Android(安卓)开发笔记 006-使用短信验证SDK进行短信验证
  4. Android(OpenCV) NDK开发: 0xdeadbaad(code=1)错误 及 关闭armea
  5. Android(安卓)ROM的创建和烧录
  6. Android(安卓)开机自启动程序
  7. Android(安卓)的 Recovery 分析
  8. android使用pull解析器来解析和生成xml文件
  9. android与.NET webservice

随机推荐

  1. 从0开始在Android下开发生活方向盘应用(自
  2. android与模式:解耦与复用
  3. Android的屏幕刷新原理
  4. Android(安卓)SDK 离线安装详细教程[2012
  5. 鲍尔默炮轰Android难用:用户须是计算机专
  6. 那些年我追过的android
  7. Android图片压缩浅谈
  8. [置顶] 那两年炼就的Android内功修养
  9. Android(安卓)Rom分区 与 SD卡读写
  10. Android的CursorAdapter与CursorFilter机