正在阅读:Java中更新XML文档的常用方法Java中更新XML文档的常用方法

2004-07-22 10:04 出处:CSDN 作者:chensheng913 责任编辑:linjixiong

  最新的JAXP 1.2 EA(Early Access)改弦更张,采用性能更好的Apache Xalan和Apache Xerces分别作为XSLT处理器和XML解析器,不能直接支持Apache Crimson了,所以如果你的开发环境采用了JAXP 1.2 EA或者是Java XML Pack(内含JAXP 1.2 EA),那么将无法直接编译运行上面的例子(AddRecord.java),你需要额外下载并安装Apache Crimson。

  方法三:使用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文档)。


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

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

关注我们

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