14

このコードを使用して改行を有効にします。

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

しかし、次の出力が得られます。

<?xml version="1.0" encoding="UTF-8"?><root>
  <child>aaaa</child>
</root>

ルート要素の前に改行を入れたいです。私は何をすべきか?

4

6 に答える 6

5

これを試して

transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount","2");
于 2016-08-11T12:43:03.467 に答える
3

別の解決策は次のとおりです。トランスフォーマー.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,"はい"); トランスフォーマー.setOutputProperty("{ http://xml.apache.org/xslt }インデント量", "10");

于 2016-08-12T12:00:54.593 に答える
0

そのタグの終わりを認識し、途中で改行を追加するようにコード化されWriterた a FilterWriter(またはOutputStreama ) でaをラップすることにより、おそらく自分で改行を追加できます。FilterOutputStream

しかし、それは少しばかげています。Stephen C が彼のコメントで述べているように、おそらくこれを気にするほど気にするべきではありません。

于 2012-06-30T17:24:30.937 に答える
-2

手動で改行を挿入できます。文字列を一時変数に割り当てます (文字列の一時変数としましょう)。次に、このようなことをします

String filteredStr = new StringBuilder(temp).insert(temp.indexOf('>') + 1, "\n")
                    .toString();
于 2014-09-20T00:39:01.693 に答える