2011-04-05 20 views
5

應該很容易和明顯的,但我不能找到一種方式 - XMLOutputFactory接受ANLY OutputStreamResult或其他Writer生成一個新的XMLStreamWriter

我手邊有一個XMLStreamReader,它沒有提取ResultOutputStream的方法。如何變換的XMLStreamReader到XMLStreamWriter

如果解決方案使用Event API更容易,那也可以。

謝謝

回答

10

你可以使用一個javax.xml.transform.Transformer轉換一個StAXSource包裝讀者去StAXResult包裝的作家。

TransformerFactory tf = TransformerFactory.newInstance(); 
Transformer t = tf.newTransformer(); 
StAXSource source = new StAXSource(xmlStreamReader); 
StAXResult result = new StAXResult(xmlStreamWriter); 
t.transform(source, result); 

使用事件API,你也可以使用folloiwng:

+0

謝謝。這工作正常(但有點反制) – kostja 2011-04-05 14:59:19

+1

@kostja - 您可能還對以下方法感興趣:http://download.oracle.com/javase/6/docs/api/javax/xml/stream/XMLEventWriter。 html#add(javax.xml.stream.XMLEventReader) – 2011-04-05 15:04:29

+0

謝謝,這就是我最終使用的方法 - 「XMLEventWriter」的add()方法使用起來更舒適自然。 – kostja 2011-04-06 09:26:24