![Java核心技术·卷Ⅱ:高级特性(原书第10版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/937/34339937/b_34339937.jpg)
上QQ阅读APP看书,第一时间看更新
3.7.3 写出文档
有些奇怪的是,把DOM树写出到输出流中并非一件易事。最容易的方式是使用可扩展的样式表语言转换(Extensible Stylesheet Language Transformations,XSLT)API。关于XSLT的更多信息请参见3.8节。当下,我们先考虑根据生成XML输出的“魔咒”而编写的代码。
我们把“不做任何操作”的转换应用于文档,并且捕获它的输出。为了将DOCTYPE节点纳入输出,我们还需要将SYSTEM和PUBLIC标识符设置为输出属性。
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-6-i.jpg?sign=1739512056-vzTfDnayjRwWOlTI75iubf6MqhbCfGod-0-53d3ee10f0c3fdb101365e82f9721589)
另一种方式是使用LSSerializer接口。为了获取实例,可以使用下面的魔咒:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-7-i.jpg?sign=1739512056-jAYRTLxvegKR3NTsDIQ8tevYWsLAlyAZ-0-a40169229804c81f576bbe5caf137823)
如果需要空格和换行,可以设置下面的标志:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-8-i.jpg?sign=1739512056-XgBApn6YhM2HzbN1dAUmYfJ7jrTRKYmb-0-75ac4033cf00bcac821cd310654f6b76)
然后可以易如反掌地将文档转换为字符串:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/172-i.jpg?sign=1739512056-Xx4lSNT8RpG6GS5qyFFqez4QJjc2skQ3-0-bd91ab46f1f3998908fb3dad319b7a72)
如果想要将输出直接写入到文件中,则需要一个LSOutput:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/172-2-i.jpg?sign=1739512056-0USLYlRf2nJwfnlKQQj8ktuTxWIuBnYV-0-223a0e035377b4b59e3c88e4270a6cc2)