XML::Atom::Feed - Atom feed
use XML::Atom::Feed; use XML::Atom::Entry; my $feed = XML::Atom::Feed->new; $feed->title('My Weblog'); my $entry = XML::Atom::Entry->new; $entry->title('First Post'); $entry->content('Post Body'); $feed->add_entry($entry); my @entries = $feed->entries; my $xml = $feed->as_xml; ## Get a list of the <link rel="..." /> tags in the feed. my $links = $feed->link; ## Find all of the Atom feeds on a given page, using auto-discovery. my @uris = XML::Atom::Feed->find_feeds('http://www.example.com/'); ## Use auto-discovery to load the first Atom feed on a given page. my $feed = XML::Atom::Feed->new(URI->new('http://www.example.com/'));
Creates a new feed object, and if $stream is supplied, fills it with the data specified by $stream.
Automatically handles autodiscovery if $stream is a URI (see below).
Returns the new XML::Atom::Feed object. On failure, returns
$stream can be any one of the following:
This is treated as the XML body of the feed.
This is treated as the name of a file containing the feed XML.
This is treated as an open filehandle from which the feed XML can be read.
This is treated as a URI, and the feed XML will be retrieved from the URI.
If the content type returned from fetching the content at URI is text/html, this method will automatically try to perform auto-discovery by looking for a <link> tag describing the feed URL. If such a URL is found, the feed XML will be automatically retrieved.
If the URI is already of a feed, no auto-discovery is necessary, and the feed XML will be retrieved and parsed as normal.
Given a URI $uri, use auto-discovery to find all of the Atom feeds linked from that page (using <link> tags).
Returns a list of feed URIs.
If called in scalar context, returns an XML::Atom::Link object corresponding to the first <link> tag found in the feed.
If called in list context, returns a list of XML::Atom::Link objects corresponding to all of the <link> tags found in the feed.
Adds the link $link, which must be an XML::Atom::Link object, to the feed as a new <link> tag. For example:
my $link = XML::Atom::Link->new; $link->type('text/html'); $link->rel('alternate'); $link->href('http://www.example.com/'); $feed->add_link($link);
Returns the language of the feed, from xml:lang.
Returns an XML::Atom::Person object representing the author of the entry, or
undef if there is no author information present.
If $author is supplied, it should be an XML::Atom::Person object representing the author. For example:
my $author = XML::Atom::Person->new; $author->name('Foo Bar'); $author->email('firstname.lastname@example.org'); $feed->author($author);
Please see the XML::Atom manpage for author, copyright, and license information.