2010-06-15 5 views
0

내 DOM 문서를 XML 파일로 저장하려고합니다. 나는이 자습서를 따르OutputStream에서 File Stream으로

... 
TransformerFactory tFactory = TransformerFactory.newInstance(); 
Transformer transformer = tFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 
StreamResult result = new StreamResult(System.out); 
transformer.transform(source, result); 

대신 System.out에, 나는 파일 결과에 저장하려면 : http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html

그래서,이 내 코드입니다. 어떻게해야합니까?

답변

3
사용

new StreamResult(new FileOutputStream(...)) 

하지만 StreamResult 유니 코드 인코딩을 사용하지 않는 한, 인코딩 된 문자가 출력되도록하는 Writer을 사용할 수는 UTF-8, 암시 적으로 말한다.

+0

XML에 내부적으로 인코딩을 설명하기 때문에 XML에 'InputStream' 및'OutputStream' 객체를 사용하십시오. 예를 들어, UTF-16 인코딩을 사용하여'OutputStreamWriter'를 생성하십시오. 'Transformer'는 자동 감지 할 수 없으므로'xml' 선언에서 "UTF-8"의 "encoding"속성을 사용합니다. 결과 XML이 구문 분석 될 때 문서에 지정된대로 UTF-8 디코더가 사용되지만 실제 인코딩이 UTF-16이므로 실패합니다. Transformer에서'OutputKeys.ENCODING' 속성을 설정하면이 문제를 해결할 수 있습니다. – erickson