Java XML dom:防止折叠空元素

时间:2013-10-06 13:43:01

标签: java xml dom

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

如果有空元素,则默认输出为折叠:

<element/>

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

<element></element>

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这实际上取决于您如何将文档写入文件,与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声明。