Created
January 16, 2009 14:27
-
-
Save pauldix/47938 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Feedzirra | |
class AtomEntry | |
include SAXMachine | |
element :title | |
# the :as argument makes this available through atom_entry.author instead of .name | |
element :name, :as => :author | |
element "feedburner:origLink", :as => :url | |
element :summary | |
element :content | |
element :published | |
end | |
# Class for parsing Atom feeds | |
class Atom | |
include SAXMachine | |
element :title | |
# the :with argument means that you only match a link tag that has an attribute of :type => "text/html" | |
# the :value argument means that instead of setting the value to the text between the tag, | |
# it sets it to the attribute value of :href | |
element :link, :value => :href, :as => :url, :with => {:type => "text/html"} | |
element :link, :value => :href, :as => :feed_url, :with => {:type => "application/atom+xml"} | |
elements :entry, :as => :entries, :class => AtomEntry | |
end | |
end | |
# you can then parse like this | |
feed = Atom.parse(xml_text) | |
# then you're ready to rock | |
feed.title # => whatever the title of the blog is | |
feed.url # => the main url of the blog | |
feed.feed_url # => goes to the feedburner feed | |
feed.entries.first.title # => title of the first entry | |
feed.entries.first.author # => the author of the first entry | |
feed.entries.first.url # => the permalink on the blog for this entry | |
# etc ... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment