我有一个Drupal站点设置。它为feed发送的rs很简单,页面有一个图像和一些用于测试的文本。
在另一个环境中 - 非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 feed已经完成了这项工作并且显示正确。
当你在正确的rss feed上查看源代码时,xml就像它应该的那样位于标签中。
当您在此drupal Feed上查看源时,它看起来像<div class="field-item even" property="content:encoded"><p>This is a test</p>
</div>
而不是html。
任何帮助都将不胜感激....
答案 0 :(得分:1)
Drupal正在使用HTML实体来保留标记。如果你不想那样,你需要在Drupal身上剥离它们。确切的方法取决于您生成Feed的方式。
如果您确实需要它们,则需要在渲染实体之前对其进行解码,否则转义的实体将显示为字符。您可以使用http://commons.apache.org/lang/api-2.6/org/apache/commons/lang/StringEscapeUtils.html#unescapeHtml%28java.lang.String%29。