2011-09-01 1 views
2

내 사이트에 RSS 피드를 만들어야합니다. 문제는 콘텐츠를 가져 와서 인라인 스타일 및 기타 마크 업이 포함되어 있다는 것입니다. 필자는 다양한 방법을 살펴 보았지만 모든 기능을 제거 할 수는 없으며 일부 기능은 유효성 검사에서 내 피드를 중지시킵니다. 필자가이 글을 읽을 무엇에서CDATA를 사용하여 RSS 피드의 유효성을 검사하는 방법은 무엇입니까?

<![CDATA[ <description>My Content here </description> ]]> 

은 XML이 괜찮 확인합니다 이유입니다, 구문 분석되는 컨텐츠를 정지 : 그것이 작동하는 것 같다 주위에

한 일이있다. Ive는 몇몇 독자를 봤고 괜찮 았지만,이 방법의 위험/단점은 무엇입니까? 나는 그 의미를 이해하지 못하기 때문에 이드는 내가 할 수있는 시험에 대한 조언이나 정보를 높이 평가한다.

감사

답변

3

당신은 당신이 사용하도록주의해야하지만,이, 완벽하게 합리적인 접근 방식입니다 :보다는

<description><![CDATA[My Content here]]></description> 

... :

<![CDATA[ <description>My Content here </description> ]]> 

... 등 <description> 요소는 RSS 사양의 일부이므로 텍스트로 이스케이프되지 않고 RSS에 올바르게 표시되어야합니다.

titledescription에 RSS가 아닌 콘텐츠 (일반적으로 HTML)를 포함하려는 경우, 특히 다양한 태그 또는 잘못된 마크 업이 포함될 수있는 사용자 제작 콘텐츠 인 경우 전체 콘텐츠를 문자 데이터로 표시하십시오 이게 분명히가는 길입니다.

RSS 리더는 일반적으로 description 요소에 CDATA로 저장된 HTML을 기대하고 대처하지만 사용하는 XML 파서 (및 RSS를 구문 분석하는 다른 모든 요소)는 포함하는 XML 형식에 상당히 민감합니다 HTML 태그, 예기치 않은 항목 또는 심지어 도망 치지 않고 <description> 텍스트의 단 하나의 "<".

<![CDATA[]]>으로 수동으로 래핑하는 대신 XML 라이브러리가 CDATA로 내용을 삽입하는 데 사용하는 방법을 사용하십시오. 그런 식으로 모든 생각 (콘텐츠에 ]]>이 포함되면 어떻게됩니까?)이 수행됩니다.