Java中XML空元素的输出格式

时间:2013-10-07 12:55:18

标签: java xml dom

我在下面编写代码来获取XML输出。

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.newDocument();

Element element = document.createElement("Test");
Text text = document.createTextNode("");
element.appendChild(text);
document.appendChild(element);

TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);

我得到的是

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Test/>

我想要的是

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Test></Test>

我该怎么做?

非常感谢。

1 个答案:

答案 0 :(得分:2)

没有干净的方法可以做到这一点..

如果您对使用管道胶带解决方案感到满意,可以让变压器输出html而不是xml:

transformer.setOutputProperty(javax.xml.transform.OutputKeys.METHOD, "html");

但同样,我必须指出这不是一个干净的解决方案,但它为我做了伎俩,因为我遇到了类似的问题