现在的位置: 首页 > 综合 > 正文

Android下Xml解析技术(四)、pull生成Xml文件

2012年07月24日 ⁄ 综合 ⁄ 共 1354字 ⁄ 字号 评论关闭

public void pullCreateXml() throws IllegalArgumentException, IllegalStateException, IOException{
		//要存储的数据
		Person person1=new Person(1, "Lucy", 15);
		Person person2=new Person(2, "Tim", 20);
		List<Person> persons=new ArrayList<Person>();
		persons.add(person1);
		persons.add(person2);
		
		//要存储的xml文件的位置
		OutputStream outputStream=openFileOutput("test.xml", MODE_PRIVATE);
		
		//使用Xml工具类,获得serializer对象,pull解析器和生成器可以用Xml工具类直接获得,也可以像下面那样获得
		//XmlPullParserFactory.newInstance().newPullParser();
//		XmlPullParserFactory.newInstance().newSerializer();
		XmlSerializer serializer=Xml.newSerializer();
		serializer.setOutput(outputStream, "UTF-8");
		
		serializer.startDocument("UTF-8", true);//开始文档
		
		serializer.startTag(null, "persons"); //开始根节点persons
		for(Person p:persons){
			serializer.startTag(null, "person");//开始person节点
			
			serializer.attribute(null, "id", p.getId()+"");//person节点的属性
			
			serializer.startTag(null, "name");//开始name节点
			serializer.text(p.getName());//name的文本节点
			serializer.endTag(null, "name");//结束name节点
			
			serializer.startTag(null, "age");//开始age节点
			serializer.text(p.getAge()+"");//age的文本节点
			serializer.endTag(null, "age");//结束age节点
			
			serializer.endTag(null, "person");//结束person节点
		}
		
		serializer.endTag(null, "persons");//结束根节点persons
		
		serializer.endDocument();//结束文档
		
	}

生成的xml文件格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<persons>
	<person id="1">
		<name>Lucy</name>
		<age>15</age>
	</person>
	<person id="2">
		<name>Tim</name>
		<age>20</age>
	</person>
</persons>

抱歉!评论已关闭.