Java Transformer:如何将其结果转换为OutputStream?

我是javax.xml.transform.Transformer的新手.

我在XML文档上应用XSLT,它工作正常.

我想要实现的是能够将该转换的输出写入OutputStream.

这是我的代码

OutputStream outputStream = null;
InputStream agent = new FileInputStream("src/res/testxmlfile.xml");
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource("src/res/trans.xslt"));
transformer.transform(new StreamSource(agent), outputStream ????????);

我知道它可以用来写这样的文件,但我想把它写成一个OutputStream对象.

transformer.transform(new StreamSource(agent),
                      new StreamResult(new FileOutputStream("/result.xml")));

如何传递OutputStream来在这里使用?

这是我在传递Outputstream时遇到的错误

Exception in thread "main" javax.xml.transform.TransformerException:
                            Result object passed to ''{0}'' is invalid.
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl
                           .getoutputHandler(TransformerImpl.java:468)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl
                           .transform(TransformerImpl.java:344)
at com.gohealth.TestXmlStream.main(TestXmlStream.java:75)

解决方法:

使用StreamResult.它提供了构造函数来写入File或OutputStream:

使用文件的示例:

transformer.transform(new StreamSource(agent), new StreamResult(file));

使用FileOutputStream的示例:

FileOutputStream outputStream = new FileOutputStream(new File("outputfile.xml"));
transformer.transform(new StreamSource(agent), new StreamResult(outputStream));

使用ByteArrayOutputStream的示例:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
transformer.transform(new StreamSource(agent), new StreamResult(outputStream));
byte[] bytes = outputStream.toByteArray();`

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念