2011-09-22 169 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