2

dom4jドキュメントタイプからXML宣言を削除する必要があります

私はによってドキュメントを作成しています

doc = (Document) DocumentHelper.parseText(someXMLstringWithoutXMLDeclaration);

DocumenHelperによってドキュメントドキュメントに解析された文字列にXML宣言が含まれていません(XML => XSL => XML変換から取得されます)DocumentHelperがドキュメント本体に宣言を追加していると思いますか?

の本文からXML宣言を削除する方法はありますか

doc
4

3 に答える 3

6

私が選択するより簡単な解決策は

doc.getRootElement().asXML();
于 2017-11-20T14:38:45.233 に答える
2

この宣言がコードのどこに問題があるのか​​正確にはわかりません。(dom4jを使用して)宣言なしでxmlファイルを書きたいときにこれを一度持っていました。

したがって、これがユースケースである場合:「省略宣言」があなたが探しているものです。 http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/io/OutputFormat.html

グーグルは、これはプロパティとしても設定できると言っていますが、それが何をするのかはわかりません。

于 2011-05-24T14:17:13.667 に答える
2

ドキュメントではなくルート要素を操作する必要があります。たとえば、PhilWが言及したデフォルトのコンパクトなOutputFormatを使用します。

Document doc = (Document) DocumentHelper.parseText(someXMLstringWithoutXMLDeclaration);    
final Writer writer = new StringWriter();
new XMLWriter(writer).write(doc.getRootElement());
String out = writer.toString();
于 2012-07-12T19:05:49.100 に答える