Java XML dom : prevent collapsing empty element

标签 java xml dom

我使用 javax.xml.parsers.DocumentBuilder,并想将 org.w3c.dom.Document 写入文件。

如果有一个空元素,默认输出是折叠的:

<element/>

我可以更改此行为以便不折叠元素吗?即:

<element></element>

感谢您的帮助。

最佳答案

这实际上取决于您将文档写入文件的方式,与 DOM 本身无关。以下示例使用流行的基于 Transformer 的方法:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();      
Document document = factory.newDocumentBuilder().newDocument();             
Element element = document.createElement("tag");                            
document.appendChild(element);                                              
TransformerFactory transformerFactory = TransformerFactory.newInstance();   
Transformer transformer = transformerFactory.newTransformer();              
transformer.setOutputProperty(OutputKeys.METHOD, "html");                   
DOMSource source = new DOMSource(document);                                 
StreamResult result = new StreamResult(System.out);                         
transformer.transform(source, result);                                 

它输出 <tag></tag>如你所料。请注意,更改输出方法会产生其他副作用,例如缺少 XML 声明。

关于Java XML dom : prevent collapsing empty element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19209527/

相关文章:

javascript - 我需要在 React 应用程序中突出显示搜索到的文本

java - 如何在 Android Studio 中添加 .jar 文件

java - 如果列名不同,则一对多 hibernate 连接

java点击鼠标画一个圆圈

.net - 不同子命名空间中的类都出现在 WSDL 的顶层

javascript - 将工作表添加到 Jquery 数据表的 excel 输出中

java - 绘制到 Canvas - 不在其他项目上绘制

android - 如何在 android sdk 中将 dom 元素序列化为 xml?

html - 在 d3 中选择深层元素

php - 如何在 DOM 和 PHP 中获取文本节点?