0

次のようなRSSフィードがあります

<item>
<title>Blah</title>
<enc:enclosure resource="http://hello.jpg" type="image/jpeg"/>
</item>

Feedzirra を使用して、リソースの URL を取得しようとしています。

私が試してみました

Feedzirra::Feed.add_common_feed_entry_element('enc:enclosure', :as => :img)
feed.entries.first.img

そして、それは常に Nil を返します。これは、要素に値がないためだと思います。
私も試しました

 Feedzirra::Feed.add_common_feed_entry_element('enc:enclosure', :resource => :res, :as => :img)
 feed.entries.first.res

img は nil で、res は未定義のメソッドを返します。

では、要素の属性値「リソース」を取得するにはどうすればよいですか?

4

1 に答える 1

3

本当にrss_entry.rbを調べた後

https://github.com/feedjira/feedjira/blob/master/lib/feedjira/parser/rss_entry.rb

「media:content」の例に従おうとすることで、どのように逆方向に行ったかを理解しました

したがって、ここに正しいコードがあります。

Feedzirra::Feed.add_common_feed_entry_element('enc:enclosure', :as => :img, :value=>:resource)
feed.entries.first.img

「 http://hello.jpg」を返す

私がそれを正しく理解していれば、 :as はパーサーに何と呼びたいかを伝えます。次に、その値を対象の属性 (この場合はリソース) に設定します。

これが誰かに役立つことを願っています。

于 2015-08-19T22:32:48.087 に答える