码迷,mamicode.com
首页 > 其他好文 > 详细

使用Pull解析器生成XML文件

时间:2014-08-19 00:51:53      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:blog   使用   os   io   文件   for   ar   art   

有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中;或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐大家使用Pull解析器。
 
1、使用Pull解析器生成一个与itcast.xml文件内容相同的myitcast.xml文件,代码在下方
public static String writeXML(List<Person> persons, Writer writer){
    XmlSerializer serializer = Xml.newSerializer();
    try {
        serializer.setOutput(writer);
        serializer.startDocument("UTF-8", true);
      //第一个参数为命名空间,如果不使用命名空间,可以设置为null
        serializer.startTag("", "persons");
        for (Person person : persons){
            serializer.startTag("", "person");
            serializer.attribute("", "id", person.getId().toString());
            serializer.startTag("", "name");
            serializer.text(person.getName());
            serializer.endTag("", "name");
            serializer.startTag("", "age");
            serializer.text(person.getAge().toString());
            serializer.endTag("", "age");
            serializer.endTag("", "person");
        }
        serializer.endTag("", "persons");
        serializer.endDocument();
        return writer.toString();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

 

使用代码如下(生成XML文件):
 
File xmlFile = new File("myitcast.xml");
FileOutputStream outStream = new FileOutputStream(xmlFile);
OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream, "UTF-8");
BufferedWriter writer = new BufferedWriter(outStreamWriter);
writeXML(persons, writer);
writer.flush();
writer.close();
如果只想得到生成的xml字符串内容,可以使用StringWriter:
 
StringWriter writer = new StringWriter();
writeXML(persons, writer);
String content = writer.toString();

2、

public static void save(List<Person> persons,OutputStream out)throws Exception{
		XmlSerializer xmlSerializer=Xml.newSerializer();
		xmlSerializer.setOutput(out, "UTF-8");
		xmlSerializer.startDocument("UTF-8", true);
		xmlSerializer.startTag(null, "persons");
		
		for(Person person:persons){
			xmlSerializer.startTag(null, "person");
			xmlSerializer.attribute(null, "id", person.getId().toString());
			
			xmlSerializer.startTag(null, "name");
			xmlSerializer.text(person.getName());
			xmlSerializer.endTag(null, "name");
			
			xmlSerializer.startTag(null, "age");
			xmlSerializer.text(person.getAge().toString());
			xmlSerializer.endTag(null, "age");
			
			xmlSerializer.endTag(null, "person");
		}
		xmlSerializer.endTag(null, "persons");
		xmlSerializer.endDocument();
		out.flush();
		out.close();
	}

 调用上面方法输出xml文件

public void testSavePerson()throws Exception{
		List<Person> persons=new ArrayList<Person>();
		persons.add(new Person("zhangss",12,23));
		persons.add(new Person("xiaoxiao",45,21));
		persons.add(new Person("zhagnni",10,47));
		File file=new File(getContext().getFilesDir().toString(),"person.xml");
		FileOutputStream out=new FileOutputStream(file);
		new PersonService().save(persons, out);
	}

 

使用Pull解析器生成XML文件,布布扣,bubuko.com

使用Pull解析器生成XML文件

标签:blog   使用   os   io   文件   for   ar   art   

原文地址:http://www.cnblogs.com/wdc224/p/3920715.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!