XML-FeedWriter
view release on metacpan or search on metacpan
lib/XML/FeedWriter.pm view on Meta::CPAN
=item description
Feed description.
=back
You may specify as many channel elements as you wish.
Some minor elements may require hash/array references to specify extra attributes or child elements. Basically, a hash reference will be considered as child elements, and an array reference will be considered as a value of the elements plus a hash of...
XML::FeedWriter also accepts C<encoding> option ('utf-8' by default) and C<no_cdata> option, if you really care.
=head2 add_items
Adds items to the feed. Each item should be a hash reference, and characters are expected to be C<Encode::decode>d perl strings.
=head2 close
Closes several known tags such as 'rss' and 'channel'.
=head2 save
lib/XML/FeedWriter/Base.pm view on Meta::CPAN
use strict;
use warnings;
use Carp;
use base qw( Class::Accessor::Fast Class::Data::Inheritable );
use Encode;
use DateTimeX::Web;
use XML::Writer;
__PACKAGE__->mk_accessors(qw(
xml dtx
_closed _output _encoding _use_cdata
));
__PACKAGE__->mk_classdata( _alias => {} );
__PACKAGE__->mk_classdata( _requires => {} );
__PACKAGE__->mk_classdata( _sort_order => {} );
sub new {
my ($class, %options) = @_;
delete $options{version}; # this is for XML::FeedWriter only.
lib/XML/FeedWriter/Base.pm view on Meta::CPAN
elsif ( ref $data eq 'HASH' ) {
my %attr = %{ $data };
my $value = delete $attr{value};
$self->xml->dataElement( $key => $value, %attr );
}
else {
$self->xml->dataElement( $key => $data );
}
}
sub _cdata_element {
my ($self, $key, $data) = @_;
if ( $self->_use_cdata ) {
$self->xml->cdataElement( $key => $data );
}
else {
$self->_data_element( $key => $data );
}
}
sub _datetime_element {
my ($self, $key, $data) = @_;
my $datetime;
lib/XML/FeedWriter/RSS20.pm view on Meta::CPAN
description => 8,
creator => 7,
author => 7,
pubDate => 6,
guid => 5,
});
sub _extra_options {
my ($self, $options) = @_;
my $no_cdata = delete $options->{no_cdata};
$self->{_use_cdata} = !$no_cdata;
}
sub _root_element {
my ($self, $modules) = @_;
$self->xml->startTag( rss =>
version => '2.0',
'xmlns:dc' => 'http://purl.org/dc/elements/1.1/',
'xmlns:content' => 'http://purl.org/rss/1.0/modules/content/',
%{ $modules },
lib/XML/FeedWriter/RSS20.pm view on Meta::CPAN
my %item = $self->_canonize( $i );
$self->xml->startTag('item');
foreach my $key ( $self->_sort_keys( \%item ) ) {
if ( $key eq 'pubDate' ) {
$self->_datetime_element( $key => $item{$key} );
}
elsif ( $key eq 'description' ) {
$self->_cdata_element( $key => $item{$key} );
}
elsif ( $key eq 'enclosure' ) {
$self->_empty_element( $key => $item{$key} );
}
elsif ( $key eq 'category' ) {
$self->_duplicable_elements( $key => $item{$key} );
}
( run in 0.307 second using v1.01-cache-2.11-cpan-454fe037f31 )