javax.xml.transform.Transformer的问题。空元素在编辑器中无法正常显示,但在浏览器中

时间:2010-08-12 08:27:36

标签: java xml dom transform

我使用了javax.xml.transform.Transformer和javax.xml.transform.TransformerFactory和org.w3c.dom.Element以及org.w3c.dom.Node来根据我的要求创建XML文件。它成功地创建了XML。唯一的问题是:

< MYADDRESS NAME =“AA00001”>
           < ATTN1>一种与LT; / ATTN1>
           < ADDRESS>< / ADDRESS> //这是空的ADDRESS元素/标记。
           < STATE> AA< / STATE>
           < ZIP→1< / ZIP>
      < / MYADDRESS>

< ADDRESS>< / ADDRESS>在浏览器中显示为< ADDRESS />在像记事本这样的编辑器中,wordpad显示为< ADDRESS>< ADDRESS>。我希望它显示为< ADDRESS />在编辑器中打开文件时也是如此。

有什么想法吗? 谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您知道,<ADDRESS></ADDRESS><ADDRESS/>是完全相同的,对吧?浏览器恰好将前者折叠成后者。从XML解析器的角度来看,没有区别。

答案 1 :(得分:0)

我认为您要配置转换以折叠序列化输出中的空元素(如文本文件)。快速浏览一下list of properties显示,没有这样的选项。

所以我认为你必须实现并提供自己的内容处理程序(xalan:content-handler属性)。也许您可以将默认值子类化,并更改空元素的序列化行为。