2011-04-05 18 views
5

debe ser fácil y obvio, pero no puedo encontrar una manera - la XMLOutputFactory acepta anly OutputStream, Result u otra Writer para generar un nuevo XMLStreamWriter.

Lo que tengo a mano es un XMLStreamReader que no tiene métodos para extraer un Result o un OutputStream.cómo transformar XMLStreamReader a XMLStreamWriter

Si la solución fuera más fácil con la API de eventos, eso también estaría bien.

Gracias

Respuesta

10

Se puede usar un javax.xml.transform.Transformer para convertir un StAXSource envolver al lector a una StAXResult envolver el escritor.

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

Uso de la API de eventos también se puede utilizar el folloiwng:

+0

Gracias. Esto funciona bien (pero es un poco contradictorio) – kostja

+1

@kostja - Puede que también le interese el siguiente método: http://download.oracle.com/javase/6/docs/api/javax/xml/stream/XMLEventWriter. html # add (javax.xml.stream.XMLEventReader) –

+0

gracias, eso es lo que terminé usando - los métodos add() de 'XMLEventWriter' son mucho más cómodos y naturales de usar. – kostja

Cuestiones relacionadas