2013-02-21 1 views
0

Drupal 사이트 설정이 있습니다. 피드에 대해 보내는 RSS는 간단하며 페이지에는 테스트 용으로 하나의 이미지와 텍스트가 있습니다.drupal rss xml 변형 태그가 있습니다.

다른 환경에서 - 드루팔 (Drupal이 아닌) - XML을 변형하여 JSP 페이지에서 피드를 가져올 예정입니다.

<c:import url="http://myfeedurl/rss.xml" var="inputDoc" scope="session"/> 
<c:import url="drupal.xsl" var="stylesheet" /> 
<x:transform xml="${inputDoc}" xslt="${stylesheet}"/> 

xml 스트림을 잡아서 페이지에서 렌더링 할 때와 마찬가지로 모든 것이 올바르게 작동합니다. 그러나 그것은 콘텐츠의 html 태그를 뱉어 내고 있습니다. 따라서 "테스트입니다"라는 메시지를 보는 대신 <div class="field-item even" property="content:encoded"><p>This is a test</p> </div>

이것이 Drupal rss 문제인지 또는 렌더링 끝에 뭔가가 필요한지 궁금합니다. 나는 다른 RSS 피드를 사용하기 전에이 작업을 수행했으며 제대로 표시됩니다.

정확한 rss 피드에서 소스를 볼 때 xml은 태그에 모두있는 것으로 간주됩니다.

이 Drupal 피드에서 소스를 볼 때 html 대신 &lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;This is a test&lt;/p&gt; &lt;/div&gt;처럼 보입니다.

어떤 도움을 주시면 감사하겠습니다 ....

답변

1

드루팔은 태그를 보존하기 위해 HTML 엔티티를 사용하고 있습니다. 당신이 그것을 원하지 않는다면, 당신은 드루팔 (Drupal)의 사물에 그것들을 박아 야합니다. 정확한 방법은 피드를 생성하는 방법에 따라 다릅니다.

원하는 경우 엔티티를 렌더링하기 전에 디코딩해야합니다. 그렇지 않으면 이스케이프 처리 된 엔티티가 문자로 표시됩니다. 이 경우 http://commons.apache.org/lang/api-2.6/org/apache/commons/lang/StringEscapeUtils.html#unescapeHtml%28java.lang.String%29을 사용할 수 있습니다.

+0

Drupal 측면에 대한 모듈 권장 사항이 있습니까? drupal 7.19 .... 아니면 코어를 해킹 할 필요가 있습니까? 피드는 drupal의 각 페이지에 대해 rss로 작성된 것입니다. – user1689274

+0

HTML 서식을 보존하거나 일반 텍스트로 유지 하시겠습니까? HMTL 엔티티를 디코딩하는 것이 더 좋을 것입니다. (필자의 경험에 비추어 볼 때 대부분의 피드에서는 표준 방식입니다.) Drupal에서 RSS에 일반 텍스트를 사용하게하려면 RSS 피드에 포함 된 콘텐츠 유형으로 이동하여 "디스플레이 관리"를 선택하고 "사용자 정의 디스플레이 설정"을 확장 한 다음 RSS를 확인해야합니다. 이제 RSS 설정을위한 추가 탭이 있어야합니다. 필드의 형식 옵션으로 "일반 텍스트"를 사용할 수 있습니다. – hexblot

+0

나는 당신이 말한 것을 가져 와서 그것을 내 xlsl 스타일 시트에 적용했다. 간단히 원하는 태그에 disable-output-escaping = "yes"를 추가하면 제대로 작동합니다. 도와 주셔서 감사합니다. – user1689274