web-dev-qa-db-ja.com

Java:XMLファイルへのDOMの書き込み(フォーマットの問題)

org.w3cXML APIを使用して既存のXMLファイルを開きます。一部のノードを削除し、代わりに他のノードを追加しています。

問題は、追加された新しいノードが次々に書き込まれ、改行やインデントがまったくないことです。 XMLファイルが有効であることは事実ですが、人間がそれを調べることは非常に困難です。

とにかく、各ノードの後に​​インデント、または少なくとも改行を追加することはありますか?

27
Vhaerun

Transformer を使用して実際の書き込みを行っていると想定しています( StreamResult へ)。その場合、transformを呼び出す前にこれを行ってください。

transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.Apache.org/xslt}indent-amount", "2");
54
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.Apache.org/xslt}indent-amount", "2");

ソース JavaからXMLをプリティプリントする方法は?

17
Thilina

次のスレッドに「プリティプリント」の良い例がいくつかあります

Javaからxmlをプリティプリントする方法

解決策への私の努力へのリンク

1
mlo55