파싱 큰 XML 파일 (500 - 800MB) 그런 stax2를 사용하여 :stax2 XMLInputFactory2를 사용할 때 어떻게 입력 스트림을 변환 할 수 있습니까?
XMLStreamReader2 reader = (XMLStreamReader2) xmlif2.createXMLStreamReader(fileName, new FileInputStream(fileName));
특정 CSV로 변환하고 다음 문제를 가지고. 일부 텍스트 노드는 "& # x1;"을 포함합니다. 순서. 출력 파일에서 키릴 문자 "Ё"로 바꿔야합니다.
[com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxParsingException : 잘못된 문자 엔티티 :; 파서 그 순서 "& #의 1 개"를 발견했을 때, 그것은 던져 예외입니다 . I는 동일한 예외가 STAX에서
[행 (COL), 시스템 ID]에서 확장 문자 (코드 0x1로
수 I는 XML 스트림 리더 일부 transforation을 설정 & # X1에 교체; 지동차를 Е 할 구문 분석 중에 모든 파일을 대체 할 수있는 중간 파일을 만들 수 있지만 구문 분석하지는 않지만 좋은 생각은 아닙니다.
XML 파일은 다음 헤더가 ' XML 버전 = "1.0"인코딩 = "창-1251"?>' 이 모두 교체보다 구문 분석하기 전에 그렇게 좋을 것이다 XML 버전 해결 문제로 변경하는 경우 시퀀스 – Leonid
오른쪽에서는 XML 1.0에서 문자 엔터티가 제어 문자 (lf/cr/tab을 제외한 0x1 - 0x1F)를 참조하는 것을 허용하지 않습니다. 따라서 1.0에서 1.1로 변경해보고 문제를 피해야합니다. – StaxMan
도움이되었습니다. 감사 – Leonid