Так у меня есть следующие Nokogiri грабель задача:Rails Nokogiri Получить оба канал Название и пункт Название
require 'nokogiri'
require 'open-uri'
namespace :rss do
desc "Fetch rss feed"
task :fetch => :environment do
doc = Nokogiri::XML(open("http://www.themusicvoid.com/feed"))
@info = doc.xpath('//item').take(5).map do |i|
News.create(:title => i.xpath('title').inner_text)
end
end
end
Это заставляет меня название для каждого «Пункта» ... но я также хотел бы каждую запись базы данных чтобы содержать имя канала в строке под названием «сайт».
Так что-то вроде:
News.create(:title => i.xpath('title').inner_text, :site => i.xpath('channeltitle').inner_text)
Я просто совершенно не уверены в том, чтобы это произошло. Поскольку и название канала, и название элемента являются «заголовком», я не совсем уверен, как заставить Нокигири различать эти два. Я знаю, что мне пришлось бы включать «// канал» где-то в xpath, но я не совсем уверен, как я могу получить нокогири, чтобы вызвать один «itemtitle» и другой «channeltitle». Любая помощь будет оценена по достоинству.
Сладкое! Благодарю. Но в конечном итоге у меня будет несколько каналов. Итак, как я могу отформатировать это, чтобы получить «сайт» для каждого фида? –
Вы имеете в виду, что в одном канале будет несколько каналов (например, 'http: // www.themusicvoid.com/feed' будет иметь несколько канальных узлов) или что вы будете проходить через несколько страниц (например, http: // www.themusicvoid.com/feed' и 'http: // www.anothersite.com/feed')? –
Несколько страниц: musicvoid.com/feed и anothersite.com/feed. –