안녕하세요.

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