2009-12-21 5 views
12

Ich mache eine Datenkonvertierung (wie csv) zu xml mit SAX, dann mit Transformator in Java. Das Ergebnis ist in StreamResult, und ich versuche, dieses Ergebnis in einer Datei.xml zu speichern, aber ich finde keine Möglichkeit, StreamResult in Datei zu speichern. mache ich das alles falsch?Java: StreamResult in eine Datei speichern

Antwort

21

Ihre StreamResult sollte auf der Grundlage einer Datei erstellt werden, z.

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

Wenn Sie geben Ihre Transformer eine solche StreamResult, wird es das Ergebnis direkt in die angegebene Datei schreiben.

+0

arbeitete wie ein Charme! gerettet mein Tag:) danke! – Todd

3

Ich bin nicht vertraut mit der API ... aber gibt this link Sie, was Sie suchen?

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

Der Kommentar stimmt nicht mit dem Code überein. Es heißt, es wird in einer Datei gespeichert, aber es schreibt tatsächlich in einen String, der println'd wird. –

Verwandte Themen