使用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);