将StreamResult转换为字符串或xml

use*_*085 25 java soap spring-ws spring-mvc

使用spring ws获取StreamResult,如下所示

StreamSource source = new StreamSource(new StringReader(MESSAGE));
StreamResult result = new StreamResult(System.out);
webServiceTemplate.sendSourceAndReceiveToResult("http://someUri", 
                source, new SoapActionCallback("someCallBack"), result); 
return result;
Run Code Online (Sandbox Code Playgroud)

我得到了结果,但我想把它提取到某种xml甚至是字符串(只是想看到内容以便生成响应).

我怎样才能做到这一点?

Asi*_*tto 43

试试这个:

try {
    StreamSource source = new StreamSource(new StringReader("<xml>blabla</xml>"));
    StringWriter writer = new StringWriter();
    StreamResult result = new StreamResult(writer);
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer();
    transformer.transform(source,result);
    String strResult = writer.toString();
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)


Lex*_*ebb 5

您可以使用getReader()获取StreamSource的阅读器。然后,您应该可以使用read(char [] cbuf)将流的内容写入字符数组,如果需要,可以轻松地将其转换为字符串并打印到控制台。