packagecom.clzhang.sample.xml;import java.io.*;import java.util.*;importjavax.xml.transform.OutputKeys;importjavax.xml.transform.Transformer;importjavax.xml.transform.sax.SAXTransformerFactory;importjavax.xml.transform.sax.TransformerHandler;importjavax.xml.transform.stream.StreamResult;importorg.xml.sax.SAXException;//SAX写入XML测试//参考:http://blog.csdn.net/hairongtian/article/details/7525292
public classSAXWriteTest {//句柄
private TransformerHandler handler = null;//输出流
private OutputStream outStream = null;//根节点
privateString rootElement;public SAXWriteTest(String fileName, String rootElement) throwsException {this.rootElement =rootElement;//创建句柄,并设置初始参数
SAXTransformerFactory fac =(SAXTransformerFactory) SAXTransformerFactory
.newInstance();
handler=fac.newTransformerHandler();
Transformer transformer=handler.getTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
transformer.setOutputProperty(OutputKeys.INDENT,"yes");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"no");
outStream= newFileOutputStream(fileName);
handler.setResult(newStreamResult(outStream));
System.out.println("初始化成功");
}public void start() throwsException {
handler.startDocument();
handler.startElement("", "", rootElement, null);
System.out.println("文档开始...");
}//这个函数是最重要的,它可以控制各个细节:是否写入属性值,文本值又是多少等等
public void write(HashMapmap, String element)throwsSAXException {
handler.startElement("", "", element, null);
Iterator it =map.keySet().iterator();while(it.hasNext()) {
String key=(String) it.next();
String value=map.get(key);
handler.startElement("", "", key, null);
handler.characters(value.toCharArray(),0, value.length());
handler.endElement("", "", key);
}
handler.endElement("", "", element);
System.out.println("写入元素成功!");
}public void end() throwsException {
handler.endElement("", "", rootElement);
handler.endDocument();
outStream.close();
System.out.println("文档结束!");
}public static void main(String[] args) throwsException {
SAXWriteTest xml= new SAXWriteTest("student.xml", "students");
xml.start();
HashMap map = new HashMap();
map.put("id", "20050505");
map.put("name", "zhaobenshan");
map.put("age", "21");
map.put("classes", "Act051");
xml.write(map,"student");
map= new HashMap();
map.put("id", "20050506");
map.put("name", "songdandan");
map.put("age", "20");
map.put("classes", "Act052");
xml.write(map,"student");
map= new HashMap();
map.put("id", "20050507");
map.put("name", "fanchushi");
map.put("age", "21");
map.put("classes", "Act051");
xml.write(map,"student");
xml.end();
}
}