1

我正在尝试让华盛顿邮报政治 RSS 提要显示在我的 Rails 应用程序中。

wp_url = 'http://feeds.washingtonpost.com/rss/politics'
open(wp_url) do |rss|
  @wp_feed = RSS::Parser.parse(rss)
end

使用该代码,我收到错误消息:

attribute <url> is missing in tag <source>

我究竟做错了什么?

4

1 回答 1

5

当外部馈送无效时会发生此错误。
在这种情况下,RSS 不包含元素的必需url属性。<source>

根据元素的RSS 2.0 规范<source>

<source>是 的可选子元素<item>

它的值是项目来自的 RSS 频道的名称,从它的 . 它有一个必需的属性 ,url它链接到源的 XML 化。

<source url="http://www.tomalak.org/links2.xml">Tomalak's Realm</source>

此元素的目的是传播链接的信誉,宣传新闻项目的来源。它可以在聚合器的 Post 命令中使用。它应该在将项目从聚合器转发到博客创作工具时自动生成。

Ruby 1.9.3 文档中提到的RSS 类parse使用以下默认参数解释了它的方法:

parse(rss, do_validate=true, ignore_unknown_element=true, parser_class=default_parser)

因此,如果您想忽略此类验证错误,false请作为第二个参数传递,您将使用以下内容读取外部 RSS 提要:

require 'rss'
wp_url = open('http://feeds.washingtonpost.com/rss/politics').read
@wp_rss = RSS::Parser.parse(wp_url, false)
于 2012-09-01T18:57:42.393 回答