正在阅读:Java更新XML的四种常用方法简介Java更新XML的四种常用方法简介

2004-08-25 10:18 出处:CSDN 作者:chensheng913 责任编辑:linjixiong

  方法三:使用TransformerFactory和Transformer类

  在JAXP中所提供的标准的更新原始XML文档的方法就是调用XSLT引擎,亦即使用TransformerFactory和Transformer类。请看下面的Java代码片断:


  //首先创建一个DOMSource对象,该构造函数的参数可以是一个Document对象
  //doc代表更改后的DOM Tree。
  DOMSource doms = new DOMSource (doc);

  //创建一个File对象,代表DOM Tree所包含的数据的输出介质,这是一个XML文件。
  File f = new File ("XMLOutput.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了)。


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品