2010-01-25 19 views
9
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文档中删除XML声明给出结果如下用java

<?xml version="1.0" encoding="UTF-8"?> 
<RdbTunnels/> 

,但我需要从输出中删除XML声明我怎么能做到这一点

+3

为什么你需要将其删除? – Quentin 2010-01-25 15:42:48

+0

如果您需要删除XML声明,则不需要XML。您需要使用Flash专有的有点格式化但不是真正的文档分析器。我建议你使用正则表达式。 – 2010-01-25 15:45:12

+1

ahhh扶手椅专家,对不起,但没有。即使系统不支持xml头文件,它仍然是XML .... – edthethird 2014-04-28 16:41:00

回答

15

有你看到OutputKeys用于Transformer?具体为OMIT_XML_DECLARATION

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

+0

我基本上是将数据库数据填充到* .tbl文件中,供某些用户参考,它将用作参考,需要在xml中格式和neet不是一个XML文件。 – flash 2010-01-25 15:55:58

+1

字符编码数据对'UTF-8'不重要,因为这是没有XML声明的文档的默认值。 – bobince 2010-01-25 16:07:39

10

添加此

format.setOmitXMLDeclaration(true); 

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

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

实例(它会显示没有文件文档的XML声明XML文件)

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