Android xml文件创建和pull解析

本文提供了一个关于如何使用Java进行XML文件的创建与解析的示例教程。具体包括使用XmlPullParser进行XML文件的解析过程及使用XmlSerializer进行XML文件的创建流程。
 public void paresxml(View view) {
    	ArrayList<Sms>sList = null;
    	String tag ;
    	Sms sms = null;
    	try {
			XmlPullParser paser = XmlPullParserFactory.newInstance().newPullParser();//获取pull解析对象
			paser.setInput(new FileInputStream(new File(Environment.getExternalStorageDirectory(),"sms.xml")), "utf-8");//设置文件源
			int eventState = XmlPullParser.END_DOCUMENT;//设置读到文件尾的标记
			while ((eventState = paser.next())!=XmlPullParser.END_DOCUMENT) {//读取一个tag只要不是文件尾
				tag = paser.getName();//获取tag
				if (eventState==XmlPullParser.START_TAG) {
					if (tag.equals("smses")) {
						sList = new ArrayList<Sms>();
					}else if (tag.equals("sms")) {
						sms = new Sms();
					}else if (tag.equals("address")) {
						sms.setAddress(paser.nextText());//获取tag内的内容
					}else if (tag.equals("time")) {
						sms.setTime(paser.nextText());
					}else if (tag.equals("body")) {
						sms.setBody(paser.nextText());
					}
				}else if (eventState==XmlPullParser.END_TAG) {
					if (tag.equals("sms")) {
						sList.add(sms);
					}
				}
			}
			tv_sms.setText(sList.toString());
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
public void creatxml(View view) {
	XmlSerializer newSerializer = Xml.newSerializer();//获取xml串行化对象
	
	try {
		newSerializer.setOutput(new FileOutputStream(new File(Environment.getExternalStorageDirectory(),"sms.xml")), "utf-8");//设置输出文件路径和编码
		newSerializer.startDocument("utf-8", true);//开始一个xml文件头
		newSerializer.startTag(null, "smses");//开始第一层tag  写一个tag头应该马上写一个tag结束标记 防止忘记
		for (int i = 0; i < 30; i++) {
			newSerializer.startTag(null, "sms");
			newSerializer.startTag(null, "address");
			newSerializer.text("132"+i);//设置tag内容
			newSerializer.endTag(null, "address");
			newSerializer.startTag(null, "time");
			newSerializer.text(new Date().getTime()+"");
			newSerializer.endTag(null, "time");
			newSerializer.startTag(null, "body");
			newSerializer.text("你好啊,来呀,互相伤害呀");
			newSerializer.endTag(null, "body");
			newSerializer.endTag(null, "sms");
		}
		newSerializer.endTag(null, "smses");		
		newSerializer.endDocument();//结束这个文件
		Toast.makeText(this, "生成完成", Toast.LENGTH_SHORT).show();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值