如何抑制javax.xml.transform.Transformer的Transformer添加的xml元素

如何抑制javax.xml.transform.Transformer的Transformer添加的xml元素,java,xml-parsing,transformer,Java,Xml Parsing,Transformer,我一直在使用JavaAPI解析XML文件,以便添加、删除或更新元素/属性。除了我使用的Transformer对象将添加到XML文件的开头之外,其他一切都按照我想要的方式工作。我想知道是否有办法抑制这种情况 另外,我还注意到,这位得票最多的人提到,我们或许能够压制它 DOMSource source = new DOMSource(document); TransformerFactory tFactory = TransformerFactory.newInstance(); Transform

我一直在使用JavaAPI解析XML文件,以便添加、删除或更新元素/属性。除了我使用的
Transformer
对象将
添加到XML文件的开头之外,其他一切都按照我想要的方式工作。我想知道是否有办法抑制这种情况

另外,我还注意到,这位得票最多的人提到,我们或许能够压制它

DOMSource source = new DOMSource(document);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
FileOutputStream fout = new FileOutputStream(new File(outputFile));            
StreamResult result = new StreamResult(fout);
transformer.transform(source, result);
fout.close();

原始文档不包含

,如果可以更改XSLT,只需添加

<xsl:output omit-xml-declaration="yes"/>

或者,如果样式表中已有
元素,只需添加
省略xml声明=“yes”
属性值


如果无法更改XML,则根据特定转换器的序列化程序实现,可以设置参数或功能来禁用XML声明。从技术上讲,这是输出序列化程序的一个选项,而不是转换器本身,一些实现允许您将参数传递给序列化程序。实际上如何实现这一点取决于实现。

为什么需要抑制XML头?我们所有的XML文档都遵循特定的格式。这就是为什么。