2013-02-21 65 views
0

我有一个Drupal站点设置。它发送给订阅源的rss很简单,该页面有一个图像和一些文本供测试。drupal rss xml转换了标签

在另一个环境 - 非Drupal - 我在一个jsp页面上导入feed并转换xml。

<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 feed中查看源代码时,它看起来像这个&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。

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

回答

1

Drupal使用HTML实体来保存标签。如果你不想这样做,你需要在Drupal的事物上去除它们。确切的方法取决于您生成Feed的方式。

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

+0

有没有模块建议的drupal端? Drupal的7.19 ....或者我只需要破解核心的一些地方? feed只是在drupal中为每个页面内置的rss。 – user1689274 2013-02-21 19:24:32

+0

是否要保留HTML格式或使其成为纯文本格式?最好只解码HMTL实体(根据我的经验,这是大多数提要的标准做法)。 如果您想强制Drupal使用纯文本格式的RSS,您需要转到RSS源中包含的内容类型,选择“管理显示”,展开“自定义显示设置”,并检查RSS。你现在应该有一个额外的RSS设置选项卡。您可以使用“Plaintext”作为您的字段的格式选项。 – hexblot 2013-02-22 09:53:09

+0

我采取了你所说的并将它应用到我的xsl样式表中。我只是简单地将disable-output-escaping =“yes”添加到所需的标签,并且它可以正常工作而不会大惊小怪。谢谢您的帮助。 – user1689274 2013-02-22 14:33:05