Las etiquetas con ':' en ellas son realmente etiquetas XML con un espacio de nombres. Nunca tuve buenos resultados al usar el módulo RSS porque los formatos de alimentación a menudo no cumplen con las especificaciones, lo que hace que el módulo se rinda. Recomiendo utilizar Nokogiri para analizar el feed, ya sea RDF, RSS o ATOM.
Nokogiri tiene la capacidad de usar accesadores XPath o accesadores CSS, y ambos admiten espacios de nombres. Las dos últimas líneas serían equivalentes:
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::XML(open('http://somehost.com/rss_feed'))
doc.at('//dc:subject').text
doc.at('dc|subject').text
Cuando se trata de espacios de nombres que necesitará añadir la declaración que el descriptor de acceso XPath:
doc.at('//dc:subject', 'dc' => 'link to dc declaration')
See the "Namespaces" section para obtener más información.
Sin una URL o una muestra mejor, no puedo hacer más, pero eso debería apuntar en una mejor dirección.
Hace un par de años escribí un gran agregador de RSS para mi trabajo usando Nokogiri que manejaba RDF, RSS y ATOM. La biblioteca RSS de Ruby no estaba a la altura de la tarea, pero Nokogiri era increíble.
Si no desea hacer su propia tirada, Paul Dix's Feedzirra es una buena joya para procesar los alimentos.
Ampliando esta idea, la gema 'arrogancia' se basa en nokogiri, y hace que analizar un feed sea tan simple como pasar la URL del feed y manipular la matriz de publicaciones devueltas. Rubygems: https://rubygems.org/gems/arrogance – providence
Lo echaré un vistazo en algún momento. Cuando escribí mi agregador, no encontré nada que manejara la amplia gama de feeds totalmente desordenados que encontré. –
Sí, Arrogance descubre las etiquetas para ti y las establece como [: título] [: autor] [: enlace] [: descripción] y [: fecha] pase lo que pase. – providence