我需要从dom4j文档类型中删除XML声明
我正在通过
创建文档doc = (Document) DocumentHelper.parseText(someXMLstringWithoutXMLDeclaration);
DocumenHelper解析为Document doc的字符串不包含XML声明(它来自XML => XSL => XML转换) 我认为DocumentHelper正在向文档正文添加声明吗?
有没有办法从
的主体中删除XML声明doc
答案 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();