2009-04-18 2 views
3

Я следую инструкции на http://www.rubyrss.com/ для разбора корма из craigslist.org:Получить Дату из RSS потока в Рубине

http://seattle.craigslist.org/sof/index.rss

Все, кажется, прекрасно работать, но когда я не могу получить любого датируется анализируемым объектом:

irb(main):010:0> rss.date 
NoMethodError: undefined method `date' for #<RSS::RDF:0x2c412b8> 
     from (irb):10 
irb(main):011:0> rss.channel.date 
NoMethodError: undefined method `date' for #<RSS::RDF::Channel:0x2c406ec> 
     from (irb):11 
     from :0 
irb(main):012:0> rss.items[0].date 
NoMethodError: undefined method `date' for #<RSS::RDF::Item:0x2cdc290> 
     from (irb):12 
     from :0 
irb(main):013:0> rss.items[1].date 
NoMethodError: undefined method `date' for #<RSS::RDF::Item:0x2cd04a4> 
     from (irb):13 
     from :0 

Что я здесь делаю неправильно?

+0

(Юмор) То, что вы пытаетесь сделать неправильно, - это получить дату из RSS-канала. Пойдите в бар, там гораздо легче найти там женщин. –

ответ

2

Взгляните на RSS-канал, используя Firefox, чтобы вы могли легко видеть структуру фида. Элементы даты представляются с использованием "Dublin Core" <dc:date>

Попробуйте это:

require 'rss/dublincore' 
rss.items[3].dc_date #=> Sat Apr 18 01:02:11 -0400 2009 

Более подробную информацию на Ruby rss parser reference и Dublin Core.

+0

Прохладный! Я вижу другие теги, которые выглядят как . Я не так хорош в xml, поэтому я просто вспомнил, что «dc» - это пространство имен тегов (по крайней мере, я думаю, это то, что они называются), а в верхней части документа есть некоторые ссылки, где я могу узнать больше о их. – allyourcode

4

Вы действительно должны переключать библиотеки. Я бы рекомендовал использовать Feedzirra. Это путь, путь, путь быстрее, и он активно поддерживается.

require "feedzirra" 
feed = Feedzirra::Feed.fetch_and_parse("http://seattle.craigslist.org/sof/index.rss") 
feed.entries.first.published 
# => Fri Apr 24 18:27:28 UTC 2009 
+0

Спасибо, sporkmonger! Я обязательно посмотрю. – allyourcode

 Смежные вопросы

  • Нет связанных вопросов^_^