프로그램/안드로이드

java - xml 파서에서 cdata 처리법.

(주)CKBcorp., 2017. 4. 7. 17:17
반응형


너님을 위해 결론부터 이야기 하면, 만들어 써라.
  

고객이 데이터를 xml 로 준다고 해서 받아봤는데, 컨텐츠 부분에

<![CDATA[본문본문]]> 

요런 식으로 써있더라? 아니 XML 인데 왜 CDATA 를 쓰냐고!!

그래서 파서를 수정하려고 좀 뒤져봤는데, 의외여서 기록으로 남긴다.

난 기존 제공되는 API를 쓰고 싶었는데, 의외로 답글들이 "만들어 써" 라고 하는군.


1. xml을 org.w3c.doc 으로 파싱하는 경우.

http://stackoverflow.com/questions/25275248/how-to-parse-within-cdata-in-xml-using-java

http://www.java2s.com/Code/Java/XML/GetcharacterdataCDATAfromxmldocument.htm

등을 참고. 

원래 xml 규약은 CDATA 변환이 없다. 고로 contents ( = 텍스트 내용 ) 가져올 때 <![CDATA[]]>까지 가져오는 거 자체는 맞는 거란다.


2. XmlPullParser 쓰는 경우.

1번과 동일. 만들어서 쓰라네. 별거있나. xmlText = xmlText.substring( 9, xmlText..length() - 3 ) 처럼 쓰는 거지.


끝.



반응형