如何删除rss中的引号

时间:2014-07-08 15:35:08

标签: html drupal rss quotes

我的RSS源中有这个,在drupal视图中:

<link>Prueba &quot;con comillas&quot;</link>

我试图创建一个这样的模块:

function views_without_encoded_preprocess_views_view_views_rss(&$vars) {
  if (!empty($vars['rss_feed'])) {
    $vars['rss_feed'] = strtr($vars['rss_feed'], array(
      '&amp;#039;' => '&#039;',
      '&amp;quot;' => '&quot;',
      '&amp;lt;' => '&lt;',
      '&amp;gt;' => '&gt;',
      '&amp;amp;' => '&amp;',
      '&quot;gt' => '',
    ));
  }
}

但一切都不好。我继续看到这一部分:

<link>Prueba &quot;con comillas&quot;</link>

仅限报价。

1 个答案:

答案 0 :(得分:3)

正如我所见,您尝试使用Views RSS。

有一个修复程序似乎可行,但它仅在Drupal 6站点进行了测试。在Drupal 7中,有些事情发生了变化,但尝试了这个:

转到 views_rss / theme 并打开 theme.inc

复制出整个'function template_preprocess_views_view_views_rss函数,并将其放入主题的template.php中。

将函数名称更改为:function yourthemename _precrocess_views_view_views_rss

然后在原始主题的第200行,或者其中显示'//将XML元素添加到项目数组'的位置插入以下内容:

if (empty($rss_elements)) continue;
       // Insert here -- clean up special characters
       $rss_elements[0]['value'] = htmlspecialchars_decode(trim(strip_tags(decode_entities( $rss_elements[0]['value'])),"\n\t\r\v\0\x0B\xC2\xA0 "));
       $rss_elements[0]['value'] = htmlspecialchars($rss_elements[0]['value'], ENT_COMPAT);
       // end of cleaning
       // Add XML element(s) to the item array.
       $rss_item['value'] = array_merge($rss_item['value'], $rss_elements);
}

检查您的RSS ....您可能需要刷新缓存几次。

你可以尝试的另一件事是htmlspecialchars。在我看来,Views RSS字段的输出可以使用它来强制对引号,撇号和&符号进行编码。

希望有所帮助。