안드로이드 개발 질문/답변
(글 수 40,700)
안녕하세요.
CDATA에 포함된 개행문자를 제대로 인식하지 못하는 문제를 해결하지 못해 이렇게 질문 드립니다.
서버에서 xml을 받아와 파싱하고 있습니다.
받아온 xml문서는 대략 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?> \t\t\t<Notice> <Notic> \t\t\t\t\t<num>49</num> \t\t\t\t\t<board_subject><![CDATA[[테스트] 부가서비스 출시]]></board_subject> \t\t\t\t\t<board_content><![CDATA[테스트 부가서비스가 출시되었습니다.회원님들에게 편의를 제공할 부가서비스가 출시되었습니다.저렴한 가격으로 더욱 편하게 테스트를 이용해보세요.아래 링크에서 만나보실 수 있습니다.http://www.naver.com]]></board_content> \t\t\t\t\t<board_register_date>20120120122302</board_register_date> \t\t\t\t</Notic><Prev> \t\t\t\t\t<num>48</num>\t\t\t\t\t<board_subject><![CDATA[[테스트] 새해 복 많이 받으세요]]></board_subject> \t\t\t\t</Prev><Next> \t\t\t\t\t<num>50</num> \t\t\t\t\t<board_subject><![CDATA[[테스트] 요금제 변경]]></board_subject> \t\t\t\t</Next> </Notice>
탭문자는 그대로 오는데 CDATA에 포함된 문자만 오질 않네요; (<board_content> 태그에는 개행문자가 원래 있어야 합니다;)
그런데, DB에서 가져올 땐 줄바꿈 문자가 분명 들어있습니다.
왜냐하면 php에서
$content = preg_replace("/\n/", "\\n", $article["content"]); ... ... ... echo "... <board_content><![CDATA[$content]]></board_content> ...";
위와 같이 하면 문장에 \\n이 포함되서 넘어오기 때문이죠.
이럴 땐 php에서 문제를 해결해야 하나요? 파싱하는 과정에서 문제를 해결해야 하나요?ㅠ
뭔가 초보적인 문제 같은데 해결이 안되네요 ㅠ
도와주십시오 ㅠ
lifecluee@gmail.com
자답입니다;
이게 맞는 방법인지는 모르겠지만 잘 들어오네요.
XML데이터를 아무리 단말에서 받아보아도 \t는 있으되 \n은 없었습니다. 문제와 해결책은 다음과 같습니다.
문제는 다른 곳에 있었네요 -_-; 역시 기초가 탄탄해야 하나봅니다;