Ответ 1
Взгляните и научитесь использовать javadocs класса StreamResult (http://java.sun.com/javase/6/docs/api/). Один из конструкторов StreamResult принимает объект Writer в качестве параметра. Вы увидите, что одним из подклассов Writer является StringWriter. Таким образом, чтобы получить строку из того, что записано в StreamResult, вы можете построить StringWriter, поместить его в StreamResult, transform() 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();