0

我有一个 Drupal 站点设置。它为提要发送的 rss 很简单,页面有一个图像和一些用于测试的文本。

在另一个环境中 - 非 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 回答