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

fla*_*ash 9 java xml xml-serialization

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);
Run Code Online (Sandbox Code Playgroud)

结果如下

<?xml version="1.0" encoding="UTF-8"?>
<RdbTunnels/>
Run Code Online (Sandbox Code Playgroud)

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

Bri*_*new 15

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

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

  • 字符编码数据对于“UTF-8”并不重要,因为这是没有 XML 声明的文档的默认值。 (2认同)

Pet*_*ist 10

加上这个

format.setOmitXMLDeclaration(true);
Run Code Online (Sandbox Code Playgroud)

OutputFormat format = new OutputFormat(document);
format.setIndenting(true);
format.setOmitXMLDeclaration(true);
Run Code Online (Sandbox Code Playgroud)