さまざまな(キャッシュされた)データソースからDOMを構築し、不要な特定の要素ノードを削除して、次のコマンドを使用して結果をXML文字列にシリアル化するJava(5.0)コードがあります。
// Serialize DOM back into a string
Writer out = new StringWriter();
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
tf.setOutputProperty(OutputKeys.INDENT, "no");
tf.transform(new DOMSource(doc), new StreamResult(out));
return out.toString();
ただし、いくつかの要素ノードを削除しているため、最終的にシリアル化されたドキュメントに多くの余分な空白ができてしまいます。
文字列にシリアル化される前(または実行中)に、DOMから無関係な空白を削除/折りたたむ簡単な方法はありますか?