//首先创建一个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 (); //设置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); |