XML-NewsML_G2
view release on metacpan or search on metacpan
lib/XML/NewsML_G2/Writer/News_Item.pm view on Meta::CPAN
$self->_create_teaser($cm);
$root->appendChild($cm);
my @asserts = $self->_create_asserts();
$root->appendChild($_) foreach @asserts;
return;
}
sub _create_content {
my ( $self, $root ) = @_;
$root->appendChild( my $cs = $self->create_element('contentSet') );
my $inlinexml = $self->create_element( 'inlineXML',
contenttype => 'application/xhtml+xml' );
my $html = $self->create_element( 'html', _ns => $self->xhtml_ns );
$html->appendChild( my $head =
$self->create_element( 'head', _ns => $self->xhtml_ns ) );
$head->appendChild(
$self->create_element(
'title',
_ns => $self->xhtml_ns,
_text => $self->news_item->title
)
);
$inlinexml->appendChild($html);
$html->appendChild( my $body =
$self->create_element( 'body', _ns => $self->xhtml_ns ) );
$body->appendChild(
$self->create_element(
'h1',
_ns => $self->xhtml_ns,
_text => $self->news_item->title
)
);
$body->appendChild(
$self->create_element(
'h2',
_ns => $self->xhtml_ns,
_text => $self->news_item->subtitle
)
) if $self->news_item->subtitle;
my @paras =
$self->news_item->paragraphs
? $self->news_item->paragraphs->getChildNodes()
: ();
$body->appendChild($_) foreach (@paras);
$cs->appendChild($inlinexml);
foreach ( sort keys %{ $self->news_item->remotes } ) {
my $rc = $self->create_element( 'remoteContent', href => $_ );
$self->_create_remote_content( $rc, $self->news_item->remotes->{$_} );
$cs->appendChild($rc);
}
foreach ( @{ $self->news_item->inlinedata } ) {
my %args;
if ( $_->isa('XML::NewsML_G2::Inline_CData') ) {
$args{_cdata} = $_->data;
}
else {
$args{_text} = $_->data;
}
$args{contenttype} = $_->mimetype if $_->mimetype;
my $data = $self->create_element( 'inlineData', %args );
$cs->appendChild($data);
}
return;
}
__PACKAGE__->meta->make_immutable;
1;
__END__
=head1 NAME
XML::NewsML_G2::Writer::News_Item - create DOM tree conforming to
NewsML-G2 for News Items
=for test_synopsis
my ($ni, $sm);
=head1 SYNOPSIS
my $w = XML::NewsML_G2::Writer::News_Item->new
(news_item => $ni, scheme_manager => $sm);
my $p = $w->create_element('p', class => 'main', _text => 'blah');
my $dom = $w->create_dom();
=head1 DESCRIPTION
This module implements the creation of a DOM tree conforming to
NewsML-G2 for News Items. Depending on the version of the standard
specified, a version-dependent role will be applied. For the API of
this module, see the documentation of the superclass L<XML::NewsML_G2::Writer>.
=head1 ATTRIBUTES
=over 4
=item news_item
L<XML::NewsML_G2::News_Item> instance used to create the output document
=back
=head1 AUTHOR
Philipp Gortan C<< <philipp.gortan@apa.at> >>
=head1 LICENCE AND COPYRIGHT
Copyright (c) 2013-2014, APA-IT. All rights reserved.
See L<XML::NewsML_G2> for the license.
( run in 2.199 seconds using v1.01-cache-2.11-cpan-99c4e6809bf )