Je veux convertir la sortie du résultat du flux en chaîne car je veux l'utiliser dans Junit, je pense que je dois utiliser l'écrivain de chaîne, mais je ne sais pas exactement comment l'utiliser.
StreamResult result = new StreamResult(new File("C:\\file.xml"));
transformer.transform(source, result);
Merci Fedor
Jetez un œil et apprenez à utiliser les javadocs de la classe StreamResult ( http://Java.Sun.com/javase/6/docs/api/ ). L'un des constructeurs de StreamResult prend un objet Writer comme paramètre. Vous verrez que l'une des sous-classes de Writer est StringWriter. Ainsi, pour obtenir une chaîne à partir de ce qui est écrit dans le StreamResult, vous pouvez construire un StringWriter, le placer dans le StreamResult, transformer () la source en StreamResult et obtenir la chaîne du 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();
Vous pouvez utiliser un StringWriter de cette manière:
StringWriter sw = (StringWriter) result.getWriter();
StringBuffer sb = sw.getBuffer();
String finalstring = sb.toString();