快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
Output.xml"); //创建一个StreamResult对象,该构造函数的参数可以取为File对象。 StreamResult sr = new StreamResult (f); //下面调用JAXP中的XSLT引擎来实现输出DOM Tree中的数据到XML文件中的功能。 //XSLT引擎的输入为DOMSource对象,输出为StreamResut对象。 try { //首先创建一个TransformerFactory对象,再由此创建Transformer对象。Transformer //类相当于一个XSLT引擎。通常我们使用它来处理XSL文件,但是在这里我们使 //用它来输出XML文档。 TransformerFactory tf=TransformerFactory.newInstance(); Transformer t=tf.newTransformer (); //关键的一步, 调用Transformer对象 (XSLT引擎)的transform()方法,该方法的第一 //个参数是DOMSource对象,第二个参数是StreamResult对象。 t.transform(doms,sr); } catch (TransformerConfigurationException tce) { System.out.println("Transformer Configuration Exception\n-----"); tce.printStackTrace(); } catch (TransformerException te) { System.out.println ("Transformer Exception\n---------"); te.printStackTrace (); }

在实际的应用中,我们可以应用传统的DOM API从XML文档中获取DOM Tree,然后根据实际的需求对DOM Tree执行各种操作,得到最终的Document对象,接下来可以由此Document对象创建DOMSource对象,剩下的事情就是照搬上面的代码了,程序运行完毕后, XMLOutput.xml就是你所需要的结果(当然了,你可以随意更改StreamResult类构造函数的参数,指定不同的输出介质,而不必是千篇一律的XML文档)。

这个方法最大的好处在于可以随心所欲的控制DOM Tree中的内容输出到输出介质中的格式,但是光靠TransformerFactory类和Transformer类并不能实现这个功能,还需要依赖OutputKeys类的帮助。 完整的例子请参考下列文件: AddRecord2.java(见附件)、user.xml(见附件)。该例子的运行环境为:Windows XP Professional、JDK 1.3.1。为了能够正常编译运行AddRecord2.java这个程序,你需要到网址http://java.sun.com去下载安装JAXP 1.1或者Java XML Pack(Java XML Pack已经内含JAXP了)。

OutputKeys类

javax.xml.transform.OutputKeys类和java.util.Properties类配合使用,可以控制JAXP的XSLT引擎(Transformer类)输出XML文档的格式。请看下面的代码片断:

//首先创建一个TransformerFactory对象,再由此创建Transformer对象。 TransformerFactory tf=TransformerFactory.newInstance(); Transformer t=tf.newTransformer (); //获取Transformser对象的输出属性,亦即XSLT引擎的缺省输出属性,这是一个 //java.util.Properties对象。 Properties properties = t.getOutputProperties(); //设置新的输出属性:输出字符编码为GB2312,这样可以支持中文字符,XSLT引擎所输出 //的XML文档如果包含了中文字符,可以正常显示,不会出现所谓的"汉字问题"。 //请留意OutputKeys类的字符串常数OutputKeys.ENCODING。 properties.setProperty(OutputKeys.ENCODING,"GB2312"); /更新XSLT引擎的输出属性。 t.setOutputProperties(properties); //调用XSLT引擎,按照输出属性中的设置,输出DOM Tree中的内容到输出介质中。 t.transform(DOMSource_Object,StreamResult_Object);

从上面的程序代码,我们不难看出,通过设置XSLT引擎(Transformer类)的输出属性,可以控制DOM Tree中的内容的输出格式,这对于我们定制输出内容是很有帮助的。那么JAXP的XSLT引擎(Transformer类)有那些输出属性可以设置呢? javax.xml.transform.OutputKeys类定义了很多字符串常数,它们都是可以自由设置的输出属性,常用的输出属性如下所示:

public static final java.lang.String METHOD

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号