1

IndentingXMLStreamWriter-Class を使用して適切にフォーマットされた XML ファイルを取得しています。コードは次のようになります。

XMLOutputFactory output = XMLOutputFactory.newInstance();
XMLStreamWriter streamWriter;
IndentingXMLStreamWriter indentingStreamWriter;
streamWriter = output.createXMLStreamWriter(new FileOutputStream(fileName));
indentingStreamWriter = new IndentingXMLStreamWriter(streamWriter);
indentingStreamWriter.setIndentStep("    "); 
indentingStreamWriter.writeStartDocument("UTF-8", "1.0"); 

生成された XML のサイズと深さは非常に大きくなります。インデント ストリームライターを使用すると、ファイルのサイズが「通常の」ストリームライターで生成されたファイルの 2 倍以上になります。インデントを実現するためのより良い方法はありますか、それとも何か間違っていますか?

前もって感謝します

ラース

更新: dty は - もちろん - 絶対に正しいです。よりコンパクトな方法 (タブ文字など) でインデントを行うのは良い考えかどうか自問自答しています。アイデアや提案はありますか?

4

1 に答える 1

2

ばかげているように聞こえるかもしれませんが、XML のファイルを取得し、インデント (レベルごとに 4 文字) と改行 (おそらく) を追加しています。どんどん大きくなっていきます。

どの程度大きくなるかは、XML タグの大きさとネストの深さによって異なります。タグが非常に小さい場合、空白の相対的なサイズは非常に大きくなり、おそらくファイルのサイズが 2 倍になる可能性があります。それらが深くネストされている場合は、各行に多くのスペースを追加することになります.

きれいに印刷されたドキュメントが必要な場合、多くのオプションはないようです。より少ないスペース (4 つではなく 2 つ) を使用したり、タブ文字を使用したりすることもできます (ただし、次の男があなたを撃つ可能性があります)

于 2012-04-05T15:35:22.640 に答える