首页 > 系统 > Android > 正文

Android下生成xml的方式

2019-11-06 08:26:10
字体:
来源:转载
供稿:网友

第一种 字符串拼凑

package com.itheima.generatexml;public class Sms {		PRivate String address;		private String body;		private String date;	public String getAddress() {		return address;	}	public void setAddress(String address) {		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;	}			}
package com.itheima.generatexml;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {	private List<Sms> smsLists;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);				//[1]初始化我们要备份的数据 				smsLists = new ArrayList<Sms>();				for (int i = 0; i < 10; i++) {			Sms sms =new Sms();			sms.setAddress("10008"+i);			sms.setBody("nihao"+i);			sms.setDate("201"+i);			//[2]把sms对象加入到 集合中 			smsLists.add(sms);					}							}	//点击按钮  通过StringBuffer 的方式生成一个xml文件 	public void click(View v){				//[1]创建sb对象 		StringBuffer sb = new StringBuffer();			//[2]开始组拼xml文件头		sb.append("<?xml version=/"1.0/" encoding=/"utf-8/"?>");		//[3]开始组拼xml根节点  		sb.append("<smss>");		//[4]开始组拼sms节点 		for (Sms sms : smsLists) {			sb.append("<sms>");						//[5]开始组拼address节点  			sb.append("<address>");			sb.append(sms.getAddress());			sb.append("</address>");						//[6]开始组拼body节点  			sb.append("<body>");			sb.append(sms.getBody());			sb.append("</body>");						//[7]开始组拼date节点  			sb.append("<date>");			sb.append(sms.getDate());			sb.append("</date>");									sb.append("</sms>");		}				sb.append("</smss>");				//[8]把数据保存到sd卡中 		try {			File file = new File(Environment.getExternalStorageDirectory().getPath(),"smsbackup.xml");			FileOutputStream fos = new FileOutputStream(file);			fos.write(sb.toString().getBytes());			fos.close();//关闭流					} catch (Exception e) {			e.printStackTrace();		}											}		}第二种 XmlSerializer实现
package com.itheima.generatexml;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlSerializer;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.util.Xml;import android.view.Menu;import android.view.View;import com.itheima.generatexml2.R;public class MainActivity extends Activity {	private List<Sms> smsLists;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);						//[1]初始化我们要备份的数据 				smsLists = new ArrayList<Sms>();				for (int i = 0; i < 10; i++) {			Sms sms =new Sms();			sms.setAddress("10008"+i);			sms.setBody("nihao"+i);			sms.setDate("201"+i);			//[2]把sms对象加入到 集合中 			smsLists.add(sms);					}							}	//点击按钮  通过的XmlSerializer方式生成一个xml文件 	public void click(View v){		try {			//[1]获取XmlSerializer 类的实例  通过Xml这个工具类去获取 			XmlSerializer serializer = Xml.newSerializer();			//[2]设置 xmlserializer序列化器参数 			File file  = new File(Environment.getExternalStorageDirectory().getPath(),"smsbackup2.xml");			FileOutputStream fos = new FileOutputStream(file);			serializer.setOutput(fos, "utf-8");			//[3]开始写xml文档开头 			serializer.startDocument("utf-8", true);			//[4]写 xml的根节点  namespace 命名空间			serializer.startTag(null, "smss");			//[5]循环写 sms节点 			for (Sms sms : smsLists) {				serializer.startTag(null, "sms");				// [6]开始address节点 				serializer.startTag(null, "address");				serializer.text(sms.getAddress());				serializer.endTag(null,"address");								// [7]开始body节点 				serializer.startTag(null, "body");				serializer.text(sms.getBody());				serializer.endTag(null,"body");								// [8]开始date节点 				serializer.startTag(null, "date");				serializer.text(sms.getDate());				serializer.endTag(null,"date");								//sms节点结束 				serializer.endTag(null, "sms");							}						serializer.endTag(null, "smss");						//写文档结尾			serializer.endDocument();			fos.close();//关闭流					} catch (Exception e) {			e.printStackTrace();		}											}		}


上一篇:Android学习之道

下一篇:android : service

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表