[java] xml 파싱 dtd 경로를 읽어 에러가 나는 경우 무시하기.
안녕하세요.
오랜만에 자바에 대한 포스팅을 합니다.
이제 블로그에 있는것들을 보거나... 거의 운영업무를 하고 있어
포스팅 할 기회가 없었어요.
자바를 사용하던 중 무심코 xml 을 파싱하려고 하는데
에러가 발생하네요
xml 파일 윗줄에 이렇게 적혀 있는 경우가 있습니다.
<!DOCTYPE package-data SYSTEM ~~~~~>
이런경우에 doctype 부분의 파일을 찾는데
이때 에러가 발생 할 수 있습니다.
기존 소스에는 이렇게 사용 하였습니다.
DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xmlFile);
DTD 파일 읽는 부분을 무시하고자 한다면 이렇게 바꾸세요.
try {
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
dbf.setNamespaceAware(true);
dbf.setFeature("http://xml.org/sax/features/namespaces", false);
dbf.setFeature("http://xml.org/sax/features/validation", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
DocumentBuilder db = dbf.newDocumentBuilder();
db.parse(xmlFile);
}
catch 부분은 시스템에서 자동으로 만들어 주는 기능을 사용하면 됩니다.
자동적으로 dtd 파일을 읽는 문제 발생하시는 분은
참고 하세요.
고생하세요.
'개발 > java,spring' 카테고리의 다른 글
외부 라이브러리 자바(java) jar 파일 생성 및 실행(vendorName == null!) 에러 해결 (0) | 2020.05.07 |
---|---|
[java] split multi_tif single page(멀티 tif 파일 쪼개기) (0) | 2020.01.20 |
[선형구조]자료 구조의 개념 정리(리스트, 스택, 큐, 데크) (0) | 2019.09.10 |
전자정부 프레임워크에 sqLite3 DB 연결 하기 (2) | 2019.03.15 |
(공통처리)웹취약성 크로스사이트 스크립트(XSS) 처리하기2_filter chain (8) | 2019.03.14 |
java xml 파싱 또다른 방법 sax 파싱 (1) | 2018.10.24 |
java JAI 파일 확장자 변환 tif -> png (0) | 2018.07.09 |