2013-10-07 18 views
0

我编写了下面的代码来获取XML输出。Java中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> 

我怎样才能做到这一点?

非常感谢。

+2

你为什么要这样做?在所有的实际应用中它应该是一样的。 – eis

+1

的含义是相同的 –

+0

我知道它们在实际使用中是一样的。但我必须这样做才能满足**可笑的**程序要求。 :-( – takagiko

回答

2

有没有干净的方式来做到这一点..

如果你觉得舒适的使用管磁带的解决方案,你可以让你的变压器输出HTML而不是XML:

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

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