XML ファイルを作成して保存するために、Apache Commons 構成 XMLConfiguration を使用しています。保存時にフォーマットはありません。私は次のようなものを得ます:
<root>
<node>
<child>
</child>
</node>
</root>
他のライブラリを使用してその出力を取得してフォーマットする方法がたくさんあることは知っていますが、コモンズ構成からインデントと同じくらい簡単なものを設定する方法が確かにあるに違いありませんか?
XML ファイルを作成して保存するために、Apache Commons 構成 XMLConfiguration を使用しています。保存時にフォーマットはありません。私は次のようなものを得ます:
<root>
<node>
<child>
</child>
</node>
</root>
他のライブラリを使用してその出力を取得してフォーマットする方法がたくさんあることは知っていますが、コモンズ構成からインデントと同じくらい簡単なものを設定する方法が確かにあるに違いありませんか?
同じ問題が発生しました。質問はずっと前に尋ねられましたが、解決策を共有したいと思います:
XMLConfiguration クラスには、createTransformed という保護されたメソッドがあります。インデントの正しい構成で拡張して設定する必要があります。
public class ExtendedXMLConfiguration extends XMLConfiguration
{
public ExtendedXMLConfiguration(File file) throws ConfigurationException
{
super(file);
}
@Override
protected Transformer createTransformer() throws TransformerException {
Transformer transformer = super.createTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
return transformer;
}
}
Java で xml 形式を処理するための多くの簡単な方法を提供するこのスレッドを参照できます。