2014-10-16 2 views
0

나는 XML을 javax.xml.stream.XMLOutputFactory.createXMLStreamWriter()를 사용하여 출력물로 작성하려고 시도해 왔습니다. UTF-8을 사용하지 않을 때 XML 선언에 대한 고민.모든 인코딩의 StreamWriting XML

String encoding = "ISO-8859-1";  
    File testFile = new File(xmlOutFile);  
    OutputStream ops = new FileOutputStream(testFile);  
    xmlWriter = factory.createXMLStreamWriter(ops,encoding);  

    ...  
    String version = "1.0";  
    String encoding = "ISO-8859-1";  
    xmlWriter.writeStartDocument(encoding, version); 

XML 입력 파일이 다시 쓰여지고 있습니다.

<?xml version="1.0" encoding="ISO-8859-1"?>  
<definition attr1="toady"></definition> 

오류는 발생하지 않지만 파일은 생성되었지만 비어 있습니다. xmlWriter를 UTF-8로 설정하면 파일이 작성됩니다.

답변

0

여기서 유일한 문제는 파일 닫기 문이 부족하다는 것이 었습니다. xmlWriter.close(). 실제 코드에서 프로세스가 XML을 생성하는 END_DOCUMENT 처리기로 전달해야하는 첫 번째 파서에서 END_DOCUMENT로 시작하기 때문에 명확하지 않았습니다. 어쨌든 UTF-8이 작동한다는 사실에 나는 놀랐습니다.