【问题标题】:Problem with javax.xml.transform.Transformer. Empty element not showing properly in editor but in Browserjavax.xml.transform.Transformer 的问题。空元素在编辑器中但在浏览器中未正确显示
【发布时间】:2010-08-12 08:27:36
【问题描述】:

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


a

// 这是空的 ADDRESS 元素/标签。
AA
1

在浏览器中显示为
,而在记事本、写字板等编辑器中显示为
。我希望它在编辑器中打开文件时也显示为

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

【问题讨论】:

    标签: java xml dom transform


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我认为您希望将转换配置为折叠序列化输出中的空元素(如文本文件)。快速查看list of properties 显示,没有这样的选项。

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

      【讨论】:

      • 感谢两位的回复。在jdom.org/docs/apidocs/org/jdom/output/Format.html 有方法 setExpandEmptyElements 看起来像根据需要工作。但是对于 javax.xml.transform.Transformer 和 org.w3c.dom 有什么直接的方法吗?
      • 我对此表示怀疑。这个 Formatter 只是封装了 XMLOutputter 格式选项。 XMLOutputter 被设计为使用org.jdom.Document 对象,但您使用org.w3c.dom.Document 类型。 jdom 有一个类可以从org.jdom.Document 转换为org.w3c.dom.Document,反之则不行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 2014-04-27
      • 2012-08-16
      • 2013-08-21
      相关资源
      最近更新 更多