
上QQ阅读APP看书,第一时间看更新
3.7.3 写出文档
有些奇怪的是,把DOM树写出到输出流中并非一件易事。最容易的方式是使用可扩展的样式表语言转换(Extensible Stylesheet Language Transformations,XSLT)API。关于XSLT的更多信息请参见3.8节。当下,我们先考虑根据生成XML输出的“魔咒”而编写的代码。
我们把“不做任何操作”的转换应用于文档,并且捕获它的输出。为了将DOCTYPE节点纳入输出,我们还需要将SYSTEM和PUBLIC标识符设置为输出属性。

另一种方式是使用LSSerializer接口。为了获取实例,可以使用下面的魔咒:

如果需要空格和换行,可以设置下面的标志:

然后可以易如反掌地将文档转换为字符串:

如果想要将输出直接写入到文件中,则需要一个LSOutput:
