用pull生成xml跟用pull解析xml类似,如果下面的解析代码有不理解的地方可以先阅读上一篇参考,博客主要用于学习分享,如果有不正确的,欢迎吐槽。
* * 代码实现 (用pull生成xml)*
/**
* 用pull生成XML文件
* @param data :数据源
* @param fos :输出流
*/
public static void exportXML(ArrayList<HashMap<String, Object>> data,
FileOutputStream fos) throws Exception{
//通过ArrayList生成XML文件
//获取序列号器
try{
XmlSerializer serializer=Xml.newSerializer();
//设置输出流
serializer.setOutput(fos, "UTF-8");
serializer.startDocument("UTF-8", true);
serializer.startTag(null, BOOKS);
for(HashMap<String, Object> map:data){
serializer.startTag(null, BOOK);
//设置属性
serializer.attribute(null, ID, map.get(ID).toString());
//写name标记
serializer.startTag(null, NAME);
//写书名
serializer.text(map.get(NAME).toString());
serializer.endTag(null, NAME);
//写price标记
serializer.startTag(null, PRICE);
//写书名
serializer.text(map.get(PRICE).toString());
serializer.endTag(null, PRICE);
serializer.endTag(null, BOOK);
}
serializer.endTag(null, BOOKS);
//文档结束
serializer.endDocument();
}finally{
fos.close();
}
}