-
[JAVA] The reference to entity "문자" must end with the ';' delimiter.Java/기타 2019. 5. 8. 12:46반응형
오류 내용
The reference to entity "문자" must end with the ';' delimiter.
오류 원인
자바에서 XML을 파싱할 때 특수 문자가 포함된 경우 예약어와 구분하지 못하기 때문에 오류가 발생합니다.
해결 방법
특수문자를 파싱이 가능한 Escape 문자로 변환시켜야 합니다.
특수문자 Escape 문자 " " & & ' ' < < > > 특정 문자열을 원하는 문자열로 변환하는 replaceAll() 함수를 사용하여 처리하시면 됩니다. replaceAll() 사용 시 특수문자 &를 변환할 경우 다른 특수문자(" ' < >)를 변환하기 전에 가장 먼저 변환하세요. Escape 문자로 변환된 문자의 & 부분을 &으로 변환시켜 원하시는 결과가 출력이 안될 수 있습니다.
1234567891011121314151617181920212223242526package com.tychejin.blog.test;public class TagToString {public static void main(String[] args) {String str = "\"&'<>";System.out.println("변환 전 : [" + str + "]");System.out.println("변환 후 : [" + setTagToString(str) + "]");}public static String setTagToString(String tag) {String str = tag;str = str.replaceAll("&", "&");str = str.replaceAll("\"", """);str = str.replaceAll("'", "'");str = str.replaceAll("<", "<");str = str.replaceAll(">", ">");return str;}}cs 반응형'Java > 기타' 카테고리의 다른 글
[JAVA] json-simple 라이브러리를 사용한 JSON 데이터 처리 (0) 2019.06.28 [JAVA] Gson 라이브러리를 사용한 JSON 데이터 처리 (0) 2019.05.19 [JAVA] JAXB - Marshalling, UnMarshalling 사용법 (0) 2019.05.18 [JAVA] Jackson 라이브러리를 사용한 JSON 데이터 처리 (0) 2019.05.14 [Java] String, StringBuffer, StringBuilder의 클래스의 특징 (0) 2019.01.04