快速业务通道

Java更新XML的四种常用方法简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
属性(必不可少,否则会产生"汉字问题")。 Properties properties = t.getOutputProperties(); properties.setProperty(OutputKeys.ENCODING,"GB2312"); t.setOutputProperties(properties); //关键的一步, 调用Transformer对象 (XSLT引擎)的transform()方法,该方法的第一 //个参数是DOMSource对象,第二个参数是DOMResult对象。 t.transform(domSource,domResult); //创建缺省的Xalan XML Serializer,使用它将临时存放在DOMResult对象 //(domResult)中的内容以输出流的形式输出到输出介质中。 Serializer serializer = SerializerFactory.getSerializer (OutputProperties.getDefaultMethodProperties("xml")); //设置Xalan XML Serializer的输出属性,这一步必不可少,否则也可能产生 //所谓的"汉字问题"。 Properties prop=serializer.getOutputFormat(); prop.setProperty("encoding","GB2312"); serializer.setOutputFormat(prop); //创建一个File对象,代表DOM Tree所包含的数据的输出介质,这是一个XML文件。 File f = new File ("xuser3.xml"); //创建文件输出流对象fos,请留意构造函数的参数。 FileOutputStream fos=new FileOutputStream(f); //设置Xalan XML Serializer的输出流。 serializer.setOutputStream(fos); //串行化输出结果。 serializer.asDOMSerializer().serialize(domResult.getNode()); } catch (Exception tce) { tce.printStackTrace(); }

这个方法不太常用,而且似乎有点画蛇添足,所以我们就不展开讨论了。完整的例子请参考下列文件: AddRecord4.java(见附件)、user.xml(见附件)。该例子的运行环境为:Windows XP Professional、JDK 1.3.1。为了能够正常编译运行AddRecord4.java这个程序,你需要到网址http://xml.apache.org/dist/去下载安装Apache Xalan和Apache Xerces。

或者是到网址http://java.sun.com/xml/download.html去下载安装Java XML Pack。因为最新的Java XML Pack(Winter 01 版)包含了Apache Xalan和Apache Xerces技术在内。

结论:

本文简略的讨论了Java语言编程中更新XML文档的四种方法。第一种方法是直接读写XML文件,这种方法十分繁琐,而且比较容易出错,极少使用,除非你需要开发自己的XML Parser,否则不会使用这种方法。第二种方法是使用Apache Crimson的XmlDocument类,这种方法极为简单,使用方便,如果你选用Apache Crimson作为XML解析器,那么不妨使用这种方法,不过这种方法似乎效率不高(源于效率低下的Apache Crimson),另外,高版本的JAXP或者是Java XML Pack、JWSDP不直接支持Apache Crimson,亦即这种方法不通用。第三种方法是使用JAXP的XSLT引擎(Transformer类)来输出XML文档,这种方法也许是标准的方法了,使用起来十分灵活,特别是可以自如控制输出格式,我们推荐采用这种方法。第四种方法是第三种方法的变种,采用了Xalan XML Serializer,引入了串行化操作,对于大量文档的修改/输出有优越性,可惜的是要重复设置XSLT引擎的属性和XML Serializer的输出属性,比较麻烦,而且依赖于Apache Xalan和Apache Xerces技术,通用性略显不足。

除了上面讨论的四种方法以外,实际上应用别的API(比如JDOM、Castor、XML4J、Oracle XML Parser V2)也有很多办法可以更新XML文档,限于篇幅,在这里就不一一讨论了。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号