使用java从生成的xml文档中删除xml声明

String root = "RdbTunnels"; DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = documentBuilder.newDocument(); Element rootElement = document.createElement(root); document.appendChild(rootElement); OutputFormat format = new OutputFormat(document); format.setIndenting(true); XMLSerializer serializer = new XMLSerializer(System.out, format); serializer.serialize(document); 

结果如下

   

但我需要从输出中删除xml声明我该怎么做

您是否看过Transformer使用的OutputKeys ? 特别是OMIT_XML_DECLARATION 。

请注意,删除标头在XML 1.0中是有效的,但是丢失了字符编码数据(以及其他内容),这些数据非常重要。

加上这个

 format.setOmitXMLDeclaration(true); 

 OutputFormat format = new OutputFormat(document); format.setIndenting(true); format.setOmitXMLDeclaration(true); 

通过使用setOmitXMLDeclaration(true); Format类的方法。 我不确定,但我认为它使用jDom lib。

示例(它将显示没有Document文档的XML声明的XML文件)

 XMLOutputter out= new XMLOutputter(Format.getCompactFormat().setOmitDeclaration(true)); out.output(document, System.out);