2010-07-31 1 views
1

Я пытаюсь прочитать этот ATOM-канал (http://ffffound.com/feed), но я не могу получить ни одно из значений, которые определены как часть пространства имен, например. СМИ: контент и медиа: миниатюра.Разбор ATOM в Ruby с пользовательскими пространствами имен

Нужно ли, чтобы синтаксический анализатор знал об пространствах имен?

Вот что я ве получил:

require 'rss/2.0' 
require 'open-uri' 

source = "http://ffffound.com/feed" 
content = "" 
open(source) do |s| content = s.read end 
rss = RSS::Parser.parse(content, false) 

ответ

1

Я считаю, что вы должны использовать Libxml-рубин для этого.

gem 'libxml-ruby', '>= 0.8.3' 
require 'xml' 

xml = open("http://ffffound.com/feed") 
parser = XML::Parser.string(xml, :options =>XML::Parser::Options::RECOVER) 
doc = parser.parse 
doc.find("channel").first.find("items").each do |item| 
    puts item.find("media:content").first 
    #and just guessing you want that url thingy 
    puts item.find("media:content").first.attributes.get_attribute("url").value 
end 

Надеюсь, это указывает на то, что вы в правильном направлении.

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

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