Java编程中更新XML文档的常用方法

2019-05-27 08:13:05于海丽


  IDENT设定XSLT引擎在输出XML文档时,是否自动添加额外的空格,它可选的值为"yes"、"no"。

public static final java.lang.String MEDIA_TYPE


  MEDIA_TYPE设定输出文档的MIME类型。

  如果设定XSLT引擎的输出属性呢?下面我们来总结一下:

  首先是获取XSLT引擎(Transformer类)的缺省输出属性的集合,这需要使用Transformer类的getOutputProperties()方法,返回值是一个java.util.Properties对象。

Properties properties = transformer.getOutputProperties();


  然后是设定新的输出属性,比如:

properties.setProperty(OutputKeys.ENCODING,"GB2312");
properties.setProperty(OutputKeys.METHOD,"html");
properties.setProperty(OutputKeys.VERSION,"4.0");
………………………………………………………


  最后是更新XSLT引擎(Transformer类)的缺省输出属性的集合,这需要使用Transformer类的setOutputProperties()方法,参数是一个java.util.Properties对象。

  我们编写了一个新的程序,其中应用了OutputKeys类,用以控制XSLT引擎的输出属性,该程序的架构和前一个程序(AddRecord3.java)大致相同,不过输出结果略有不同。完整的代码请参考下列文件: AddRecord3.java(见附件)、user.xml(见附件)。该例子的运行环境为:Windows XP Professional、JDK 1.3.1。为了能够正常编译运行AddRecord3.java这个程序,你需要到网址http://java.sun.com去下载安装JAXP 1.1或者Java XML Pack(Java XML Pack内含JAXP了)。

  方法四:使用Xalan XML Serializer

  方法四其实是方法三的一个变种,它需要Apache Xalan和Apache Xerces的支持才能够运行。例子代码如下所示:

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

//创建一个DOMResult对象,临时保存XSLT引擎的输出结果。
DOMResult domResult = new DOMResult();

//下面调用JAXP中的XSLT引擎来实现输出DOM Tree中的数据到XML文件中的功能。
//XSLT引擎的输入为DOMSource对象,输出为DOMResut对象。
try
{
 //首先创建一个TransformerFactory对象,再由此创建Transformer对象。Transformer
 //类相当于一个XSLT引擎。通常我们使用它来处理XSL文件,但是在这里我们使
 //用它来输出XML文档。
 TransformerFactory tf=TransformerFactory.newInstance();
 Transformer t=tf.newTransformer ();