dom4j文档中的XML声明

时间:2011-05-11 23:19:04

标签: java xml declaration dom4j

我需要从dom4j文档类型中删除XML声明

我正在通过

创建文档
doc = (Document) DocumentHelper.parseText(someXMLstringWithoutXMLDeclaration);

DocumenHelper解析为Document doc的字符串不包含XML声明(它来自XML => XSL => XML转换) 我认为DocumentHelper正在向文档正文添加声明吗?

有没有办法从

的主体中删除XML声明
doc

3 个答案:

答案 0 :(得分:4)

我选择的更简单的解决方案是

doc.getRootElement().asXML();

答案 1 :(得分:2)

我不确定声明在哪里确实是代码中的问题。 当我想写一个没有声明的xml文件时(使用dom4j),我曾经有过这个。

因此,如果这是您的用例:“省略声明”是您正在寻找的。 http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/io/OutputFormat.html

谷歌表示,这也可以设置为属性,但不确定它的作用。

答案 2 :(得分:2)

您需要与根元素而不是文档进行交互。 例如,使用PhilW提到的默认的紧凑型OutputFormat:

Document doc = (Document) DocumentHelper.parseText(someXMLstringWithoutXMLDeclaration);    
final Writer writer = new StringWriter();
new XMLWriter(writer).write(doc.getRootElement());
String out = writer.toString();