ワシントンポストの政治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>
私は何が間違っているのですか?
ワシントンポストの政治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>
私は何が間違っているのですか?
このエラーは、外部フィードが無効な場合に発生します。
この場合、RSSには要素に必要なurl
属性が含まれていません。<source>
<source>
のオプションのサブ要素です<item>
。その値は、アイテムの元となったRSSチャネルの名前であり、その値から派生しています。
url
これには、ソースのXML化にリンクする1つの必須属性があります。
<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
、2番目のパラメーターとして渡すと、次のように外部RSSフィードを読み取ることになります。
require 'rss'
wp_url = open('http://feeds.washingtonpost.com/rss/politics').read
@wp_rss = RSS::Parser.parse(wp_url, false)