-
[PHP] XML CDATA 란 무엇인가?오늘의 IT/PHP 2023. 1. 27. 23:59반응형
CDATA : 'Character Data'. 즉, '문자 데이터'를 뜻함
더 정확하게 말하면 '(Unparsed) Character Data'. 즉, '파싱 하지 않는 문자 데이터'라는 뜻임.
반대로, 파싱하는 문자 데이터는 'PCDATA'임
XML에서 파싱할 대상으로 인식하지 하지 않도록 그 구역을 지정해 주는 것이 CDATA임
XML로 파싱을 원하지 않는 구간의 시작에 <![CDATA[ 를 붙여주고, 구간의 끝에 ]]>를 추가하면 해당 구역이 파싱 되지 않도록 설정할 수 있음
예시
<?xml version="1.0" encoding="UTF-8"?> <dictionary> <term> <name>HI TODAY</name> <description>오늘의 대장 <b>...</b> 안녕 &&<하세요>. <b> 공부 <strong>해야돼....?</description> </term> </dictionary>
결과
HI TODAY
오늘의 대장 ...<b> 또는 <strong> 태그, '<', '>', '&' 같은 특수문자들은 XML의 구조를 위한 것이 아님여서 안 읽히거나 오류남
CDATA 사용 예시
<?xml version="1.0" encoding="UTF-8"?> <dictionary> <term> <name>HI TODAY</name> <description>오늘의 대장 <![CDATA[<b>...</b> 안녕 &&<하세요>. <b> 공부 <strong>해야돼....?]]></description> </term> </dictionary>
결과
HI TODAY
오늘의 대장 <b>...</b> 안녕 &&<하세요>. <b> 공부 <strong>해야돼....?PHP에서 사용할 때 버전 5 이후 일 경우
$ar_data['title'] = "<![CDATA[".$data['str']."]]>";
버전 4 이전 일 경우
$ar_data['title'] = array_pop(explode('<![CDATA[',reset(explode(']]>',$date['str']))));
이런 식으로 데이터 넣어서 넣어서 XML 파일 만듦
반응형'오늘의 IT > PHP' 카테고리의 다른 글
[PHP] 따옴표 처리 함수 <addslashes/stripslashes> (0) 2023.02.07 [PHP] 문자열 치환 함수 <str_replace> (1) 2023.02.01 [PHP] 문자열/배열 전환 함수 <explode/implode> (1) 2023.01.30 [php] 문자열 찾기 함수 <strpos> (1) 2023.01.26