| XML-Atom documentation | Contained in the XML-Atom distribution. |
XML::Atom::Entry - Atom entry
use XML::Atom::Entry;
my $entry = XML::Atom::Entry->new;
$entry->title('My Post');
$entry->content('The content of my post.');
my $xml = $entry->as_xml;
my $dc = XML::Atom::Namespace->new(dc => 'http://purl.org/dc/elements/1.1/');
$entry->set($dc, 'subject', 'Food & Drink');
Creates a new entry 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::Entry object. On failure, returns undef.
$stream can be any one of the following:
This is treated as the XML body of the entry.
This is treated as the name of a file containing the entry XML.
This is treated as an open filehandle from which the entry XML can be read.
Returns the content of the entry. If $content is given, sets the content of the entry. Automatically handles all necessary escaping.
If called in scalar context, returns an XML::Atom::Link object corresponding to the first <link> tag found in the entry.
If called in list context, returns a list of XML::Atom::Link objects corresponding to all of the <link> tags found in the entry.
Adds the link $link, which must be an XML::Atom::Link object, to the entry 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/2003/12/post.html');
$entry->add_link($link);
Given an XML::Atom::Namespace element $ns and an element name $element, retrieves the value for the element in that namespace.
This is useful for retrieving the value of elements not in the main Atom namespace, like categories. For example:
my $dc = XML::Atom::Namespace->new(dc => 'http://purl.org/dc/elements/1.1/');
my $subj = $entry->get($dc, 'subject');
Just like $entry->get, but if there are multiple instances of the element $element in the namespace $ns, returns all of them. get will return only the first.
Please see the XML::Atom manpage for author, copyright, and license information.
| XML-Atom documentation | Contained in the XML-Atom distribution. |
# $Id$ package XML::Atom::Entry; use strict; use XML::Atom; use base qw( XML::Atom::Thing ); use MIME::Base64 qw( encode_base64 decode_base64 ); use XML::Atom::Person; use XML::Atom::Content; use XML::Atom::Util qw( first ); sub element_name { 'entry' } sub content { my $entry = shift; if (my @arg = @_) { if (ref($arg[0]) ne 'XML::Atom::Content') { $arg[0] = XML::Atom::Content->new(Body => $arg[0], Version => $entry->version); } $entry->set($entry->ns, 'content', @arg); } else { return $entry->get_object($entry->ns, 'content', 'XML::Atom::Content'); } } __PACKAGE__->mk_elem_accessors(qw( summary )); __PACKAGE__->mk_xml_attr_accessors(qw( lang base )); __PACKAGE__->_rename_elements('issued' => 'published'); __PACKAGE__->_rename_elements('modified' => 'updated'); # OMG 0.3 elements ... to be backward compatible __PACKAGE__->mk_elem_accessors(qw( created )); __PACKAGE__->mk_object_accessor( source => 'XML::Atom::Feed' ); 1; __END__