【问题标题】:drupal rss xml transformed has tags转换后的 drupal rss xml 有标签
【发布时间】:2013-02-22 00:31:49
【问题描述】:

我有一个 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 标签。因此,我看到的不是“这是一个测试”,而是&lt;div class="field-item even" property="content:encoded"&gt;&lt;p&gt;This is a test&lt;/p&gt; &lt;/div&gt;

我想知道这是否是 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。

任何帮助将不胜感激......

【问题讨论】:

    标签: xml jsp drupal xslt rss


    【解决方案1】:

    Drupal 使用 HTML 实体来保存标签。如果您不希望这样,则需要在 Drupal 方面剥离它们。确切的方法取决于您生成提要的方式。

    如果您确实需要它们,则需要在渲染实体之前对其进行解码,否则转义的实体将显示为字符。您可以为此使用http://commons.apache.org/lang/api-2.6/org/apache/commons/lang/StringEscapeUtils.html#unescapeHtml%28java.lang.String%29

    【讨论】:

    • drupal 端有模块推荐吗? drupal 7.19 ....还是我只需要在某个地方破解核心?提要只是 drupal 中每个页面的内置 rss。
    • 您想保留 HTML 格式还是将其保留为纯文本?最好只解码 HMTL 实体(根据我的经验,这是大多数提要的标准做法)。如果您想强制 Drupal 对 RSS 使用纯文本,您需要转到 RSS 提要中包含的内容类型,选择“管理显示”,展开“自定义显示设置”,然后检查 RSS。您现在应该有一个用于 RSS 设置的附加选项卡。您可以使用“纯文本”作为字段的格式选项。
    • 我把你说的应用到我的 xsl 样式表中。我只是将 disable-output-escaping="yes" 添加到所需的标签中,它可以正常工作而不会大惊小怪。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    相关资源
    最近更新 更多