我是javax.xml.transform.Transformer
的新用戶。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)
當我嘗試使用 OutputStream outputStream = null; 我收到一個異常: 線程「main」中的異常javax.xml.transform.TransformerException:傳遞給「'{0}」的結果對象''是無效的。 \t at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(TransformerImpl.java:468) \t at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl。變換(TransformerImpl.java:344) \t at com.gohealth.TestXmlStream.main(TestXmlStream.java:75) – Aniks 2014-09-25 19:43:30
您需要初始化您的'outputStream'。你的情況仍然是「空」。將添加一些關於如何初始化幾個'OutputStream'的例子。 – manouti 2014-09-25 19:48:47
非常感謝您的指導,上述解決方案適用於我。我是Streams的新手,我沒有與他們合作的經驗。任何建議,我應該尋找快速學習?感謝你們對我的幫助。 – Aniks 2014-09-25 21:52:34