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

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


  //设置XSLT引擎的属性(必不可少,否则会产生"汉字问题")。
  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文档,限于篇幅,在这里就不一一讨论了。 


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
键盘也能翻页,试试“← →”键

关注我们

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