본문 바로가기

개인 공부

NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException 오류

728x90
반응형

Mybatis 사용 중 select 문을 사용하고 있다가

com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException; The content of elements must consist of well-formed character data or markup.

이란 오류를 보거나 xml에서 빨간 줄이 나면서 에러가 있다는 것을 알려줄 때가 있는데

 

이때 빨간 줄 또는 오류 내용을 보고 찾게 되면

 

select 문에서 <>에 오류 표시가 되어 있다는

 

것을 알게 되었다 검색을 해보니 이유로는 <> 문자가 파싱 중에

 

태그로 인식 되어 발생하는 오류라고 하며 이러한 오류는 <! [CDATA[]]> 를

 

이용하여 [] 안에 필요한 문자 <>를 넣어 주어 해결 가능하다

 

예시

select * from Test where test_number <= 1;

에서 아래 코드로 변경

select * from Test where test_number <![CDATA[<=]]> 1;

찾아보니 위의 코드처럼 적용할 문자에만 써도 되지만 select 문 전체에 써줘도 된다

 

또한 그렇게 사용할 경우 동적 쿼리를 사용할 수 없다고 하니 동적 쿼리를 사용할 경우

 

문자에만 사용해 줘야 한다.

728x90
반응형

'개인 공부' 카테고리의 다른 글

형태소 분석기 비교  (4) 2020.12.05
면접 준비하면서 공부(1)  (0) 2020.12.05