Junitで使用したいので、ストリームの結果出力を文字列に変換したいと思います。
StreamResult result = new StreamResult(new File("C:\\file.xml"));
transformer.transform(source, result);
ありがとうヒョードル
StreamResultクラスのjavadoc( http://Java.Sun.com/javase/6/docs/api/ )の使用方法をご覧ください。 StreamResultのコンストラクターの1つは、Writerオブジェクトをパラメーターとして受け取ります。 Writerのサブクラスの1つがStringWriterであることがわかります。したがって、StreamResultに書き込まれたものから文字列を取得するには、StringWriterを構築し、それをStreamResultに入れ、SourceをStreamResultに変換し、StringWriterから文字列を取得します。
//create a StringWriter for the output
StringWriter outWriter = new StringWriter();
StreamResult result = new StreamResult( outWriter );
...
transformer.transform( source, result );
StringBuffer sb = outWriter.getBuffer();
String finalstring = sb.toString();
StringWriter writer = new StringWriter();
transformer.transform(source, new StreamResult(writer));
String output = writer.toString();
この方法で StringWriter を使用できます。
StringWriter sw = (StringWriter) result.getWriter();
StringBuffer sb = sw.getBuffer();
String finalstring = sb.toString();