2009-12-21 37 views
12

Tôi đang thực hiện một số chuyển đổi dữ liệu (như csv) thành xml với SAX sau đó sử dụng biến áp trong Java. Kết quả là trong StreamResult, và tôi đang cố gắng để lưu kết quả này vào một file.xml nhưng tôi không thể tìm cách để lưu StreamResult vào tập tin. Tôi làm điều này tất cả sai?Java: Lưu StreamResult vào một tệp

Trả lời

21

Bạn cần tạo StreamResult trên cơ sở tệp, ví dụ:

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

Nếu bạn cung cấp cho bạn Transformer như một StreamResult, nó sẽ ghi kết quả của nó trực tiếp vào tập tin bạn chỉ định.

+0

làm việc như một sự quyến rũ! đã lưu ngày của tôi:) cảm ơn! – Todd

3

Tôi không quen với API ... nhưng không this link cung cấp cho bạn những gì bạn đang làm sau?

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

Nhận xét không khớp với mã. Nó nói rằng nó tiết kiệm cho một tập tin, nhưng nó thực sự viết cho một chuỗi được println'd. –

Các vấn đề liên quan