xml Java Transformer:如何将其结果生成OutputStream?
我是新来的
我正在对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)
# 1 楼答案
使用
StreamResult
。它提供构造函数来写入File
或OutputStream
:使用
File
的示例:使用
FileOutputStream
的示例:使用
ByteArrayOutputStream
的示例:# 2 楼答案
使用“StreamResult”构造一个对象,该对象表示希望输出的位置。见http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/stream/StreamResult.html