OutputKeys类 javax.xml.transform.OutputKeys类和java.util.Properties类配合使用,可以控制JAXP的XSLT引擎(Transformer类)输出XML文档的格式。请看下面的代码片断:
| //首先创建一个TransformerFactory对象,再由此创建Transformer对象。 TransformerFactory tf=TransformerFactory.newInstance(); Transformer t=tf.newTransformer (); //获取Transformser对象的输出属性,亦即XSLT引擎的缺省输出属性,这是一个 //java.util.Properties对象。 Properties properties = t.getOutputProperties(); //设置新的输出属性:输出字符编码为GB2312,这样可以支持中文字符,XSLT引擎所输出 //的XML文档如果包含了中文字符,可以正常显示,不会出现所谓的"汉字问题"。 //请留意OutputKeys类的字符串常数OutputKeys.ENCODING。 properties.setProperty(OutputKeys.ENCODING,"GB2312"); /更新XSLT引擎的输出属性。 t.setOutputProperties(properties); //调用XSLT引擎,按照输出属性中的设置,输出DOM Tree中的内容到输出介质中。 t.transform(DOMSource_Object,StreamResult_Object); |
从上面的程序代码,我们不难看出,通过设置XSLT引擎(Transformer类)的输出属性,可以控制DOM Tree中的内容的输出格式,这对于我们定制输出内容是很有帮助的。那么JAXP的XSLT引擎(Transformer类)有那些输出属性可以设置呢? javax.xml.transform.OutputKeys类定义了很多字符串常数,它们都是可以自由设置的输出属性,常用的输出属性如下所示:
| public static final java.lang.String METHOD 可以设为"xml"、"html"、"text"等值。 public static final java.lang.String VERSION |
所遵循规范的版本号,如果METHOD设为"xml",那么它的值应该设为"1.0",如果METHOD设为"html",那么它的值应该设为"4.0",如果METHOD设为"text",那么这个输出属性会被忽略。
| public static final java.lang.String ENCODING |
设置输出时所采用的编码方式,比如"GB2312"、"UTF-8"等等,如果将其设置为"GB2312",可以解决所谓的"汉字问题"。
| public static final java.lang.String OMIT_XML_DECLARATION |
|