2009-12-21 16 views
12

Estoy haciendo alguna conversión de datos (como csv) a xml con SAX y luego usando transformador en Java. El resultado está en StreamResult, y estoy tratando de guardar este resultado en un archivo.xml, pero no puedo encontrar la forma de guardar StreamResult en el archivo. ¿Estoy haciendo todo mal?Java: Guardar StreamResult en un archivo

Respuesta

21

Su StreamResult se debe crear sobre la base de un archivo, p.

StreamResult sr = new StreamResult(new File("/my/file.xml")); 

Si indica su Transformer como un StreamResult, escribirá su resultado directamente en el archivo especificado.

+0

trabajado como un encanto! salvó mi día:) gracias! – Todd

3

No estoy familiarizado con la API ... pero this link te da lo que buscas?

Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 

//initialize StreamResult with File object to save to file 
StreamResult result = new StreamResult(new StringWriter()); 
DOMSource source = new DOMSource(doc); 
transformer.transform(source, result); 

String xmlString = result.getWriter().toString(); 
System.out.println(xmlString); 
+0

El comentario no coincide con el código. Dice que está guardando en un archivo, pero en realidad escribe en una cadena que se imprime. –

Cuestiones relacionadas