2009-12-21 4 views
12

Sto facendo una conversione di alcuni dati (come csv) in xml con SAX quindi utilizzando il trasformatore in Java. Il risultato è in StreamResult e sto cercando di salvare questo risultato in un file.xml ma non riesco a trovare il modo di salvare StreamResult nel file. sto sbagliando tutto questo?Java: Salvataggio di StreamResult in un file

risposta

21

Il tuo StreamResult deve essere creato sulla base di un file, ad es.

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

caso in cui il Transformer tale StreamResult, si scriverà il risultato direttamente nel file specificato.

+0

ha funzionato come un fascino! mi ha salvato la giornata:) grazie! – Todd

3

Non ho familiarità con l'API ... ma this link ti dà quello che cerchi?

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

Il commento non corrisponde al codice. Dice che sta salvando su un file, ma in realtà scrive su una stringa che viene stampata. –