NAME

Mojo::Feed - Mojo::DOM-based parsing of RSS & Atom feeds

SYNOPSIS

use Mojo::Feed::Reader;
use Mojo::Feed;

my $feed = Mojo::Feed::Reader->new->parse("atom.xml");
print $feed->title, "\n",
  $feed->items->map('title')->join("\n");

$feed = Mojo::Feed->new( body => $string );

DESCRIPTION

Mojo::Feed is an Object Oriented module for identifying, fetching and parsing RSS and Atom Feeds. It relies on Mojo::DOM for XML/HTML parsing. Date parsing is done with HTTP::Date.

Mojo::Feed represents the parsed RSS/Atom feed; you can construct it by setting an XML string as the body, or by using a Mojo::Feed::Reader object.

ATTRIBUTES

Mojo::Feed implements the following attributes.

body

The original decoded string of the feed.

dom

The parsed feed as <Mojo::DOM> object.

source

The source of the feed; either a Mojo::Path or Mojo::URL object, or undef if the feed source was a string scalar.

title

Returns the feeds title.

description

May be filled from subtitle or tagline if absent

html_url

web page URL associated with the feed

items

Mojo::Collection of Mojo::Feed::Item objects representing feed news items

subtitle

Optional feed description

tagline

Optional feed description

author

Name from author, dc:creator or webMaster field

published

Time in epoch seconds (may be filled with pubDate, dc:date, created, issued, updated or modified)

METHODS

Mojo::Feed inherits all methods from Mojo::Base and implements the following new ones.

new

my $feed = Mojo::Feed->new;
my $feed = Mojo::Feed->new( body => $string);

Construct a new Mojo::Feed object.

to_hash

my $hash = $feed->to_hash;
print $hash->{title};

Return a hash reference representing the feed.

to_string

Return a XML serialized text of the feeds's Mojo::DOM node. Note that this can be different from the original XML text in the feed.

CREDITS

Dotan Dimet

Mario Domgoergen

Some tests adapted from Feed::Find and XML:Feed, Feed auto-discovery adapted from Feed::Find.

LICENSE

Copyright (C) Dotan Dimet.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Dotan Dimet <dotan@corky.net>

Mario Domgoergen