2011-09-22 170 views
6

我想用Java创建XML。如何从xml中删除encoding =“UTF-8”standalone =“no”在Java中的文档对象

 DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder docBuilder; 
    docBuilder = dbfac.newDocumentBuilder(); 
    Document doc = docBuilder.newDocument(); 

但Java的自动像这样

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

创建声明我怎么能删除encoding="UTF-8" standalone="no"所以这将是

<?xml version="1.0"?> 

谢谢!

+1

验证你为什么要在乎? –

+0

可能的重复 http://stackoverflow.com/questions/2133395/remove-xml-declaration-from-the-generated-xml-document-using-java –

+0

@JoachimSauer,我不想重写编码,因为其他程序以我不知道的方式使用这个XML。所以我不能确定我可以设置什么编码 – VextoR

回答

-2

我认为没有合法的方法来排除世代的属性。 但是在生成后,您可以使用XSLT删除它。

我觉得这是一个好方法。

13

为什么你需要删除一个编码?但..

doc.setXmlStandalone(true); 

将删除standalone="no"

11
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 

这将解决您的问题,在JDK 6

+0

不理解问题上的负面标记。我有同样的问题来创建一个BPEL文件,可能还有其他一些原因需要。所以谢谢你的回答。会花费我很多年。 – eskalera