我使用 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/