【发布时间】:2012-10-24 10:27:39
【问题描述】:
我想将流结果输出转换为字符串,因为我想要 在 Junit 中使用它我认为我需要使用字符串编写器但是 我不确定如何使用它。
StreamResult result = new StreamResult(new File("C:\\file.xml"));
transformer.transform(source, result);
谢谢 费多尔
【问题讨论】:
标签: java dom filestream
我想将流结果输出转换为字符串,因为我想要 在 Junit 中使用它我认为我需要使用字符串编写器但是 我不确定如何使用它。
StreamResult result = new StreamResult(new File("C:\\file.xml"));
transformer.transform(source, result);
谢谢 费多尔
【问题讨论】:
标签: java dom filestream
查看并学习使用 StreamResult 类的 javadocs (http://java.sun.com/javase/6/docs/api/)。 StreamResult 的构造函数之一将 Writer 对象作为参数。您将看到 Writer 的子类之一是 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();
【讨论】:
source 是正在转换的 XML。
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();
【讨论】: