java实现xml存储数据_Java:XML篇,使用SAX写入XML数据

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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值