0

Drupal サイトをセットアップしました。フィード用に送信する RSS は単純で、ページには 1 つの画像とテスト用のテキストがあります。

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 フィードのソースを表示すると&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;、html ではなくこのように表示されます。

どんな助けでも大歓迎です....

4

1 に答える 1

1

Drupal は HTML エンティティを使用してタグを保持しています。それが望ましくない場合は、Drupal 側でそれらを削除する必要があります。正確な方法は、フィードを生成する方法によって異なります。

それらが必要な場合は、エンティティをレンダリングする前にデコードする必要があります。そうしないと、エスケープされたエンティティが文字として表示されます。これにはhttp://commons.apache.org/lang/api-2.6/org/apache/commons/lang/StringEscapeUtils.html#unescapeHtml%28java.lang.String%29を使用できます。

于 2013-02-21T16:31:49.120 に答える