XML::RSS module.

Google

[%# # IMPORTANT NOTE # This documentation is generated automatically from source # templates. Any changes you make here may be lost. # # The 'docsrc' documentation source bundle is available for download # from http://www.template-toolkit.org/docs.html and contains all # the source templates, XML files, scripts, etc., from which the # documentation for the Template Toolkit is built. -%] [% META book = 'Modules' page = 'Plugin_XML_RSS' %] [% WRAPPER toc; PROCESS tocitem title ="SYNOPSIS" subs = []; PROCESS tocitem title ="PRE-REQUISITES" subs = []; PROCESS tocitem title ="DESCRIPTION" subs = []; PROCESS tocitem title ="AUTHORS" subs = []; PROCESS tocitem title ="VERSION" subs = []; PROCESS tocitem title ="COPYRIGHT" subs = []; PROCESS tocitem title ="SEE ALSO" subs = []; END %] [% WRAPPER section title="SYNOPSIS" -%]
    [% tt_start_tag %] USE news = XML.RSS($filename) [% tt_end_tag %]
   
    [% tt_start_tag %] FOREACH item = news.items [% tt_end_tag %]
       [% tt_start_tag %] item.title [% tt_end_tag %]
       [% tt_start_tag %] item.link  [% tt_end_tag %]
    [% tt_start_tag %] END [% tt_end_tag %]
[%- END %] [% WRAPPER section title="PRE-REQUISITES" -%]

This plugin requires that the XML::Parser and XML::RSS modules be installed. These are available from CPAN:

    http://www.cpan.org/modules/by-module/XML
[%- END %] [% WRAPPER section title="DESCRIPTION" -%]

This Template Toolkit plugin provides a simple interface to the

    [% tt_start_tag %] USE news = XML.RSS('mysite.rdf') [% tt_end_tag %]

It creates an XML::RSS object, which is then used to parse the RSS file specified as a parameter in the USE directive. A reference to the XML::RSS object is then returned.

An RSS (Rich Site Summary) file is typically used to store short news 'headlines' describing different links within a site. This example is extracted from http://slashdot.org/slashdot.rdf.

<channel> <title>Slashdot:News for Nerds. Stuff that Matters.</title> <link>http://slashdot.org</link> <description>News for Nerds. Stuff that Matters</description> </channel> <image> <title>Slashdot</title> <url>http://slashdot.org/images/slashdotlg.gif</url> <link>http://slashdot.org</link> </image> <item> <title>DVD CCA Battle Continues Next Week</title> <link>http://slashdot.org/article.pl?sid=00/01/12/2051208</link> </item> <item> <title>Matrox to fund DRI Development</title> <link>http://slashdot.org/article.pl?sid=00/01/13/0718219</link> </item> <item> <title>Mike Shaver Leaving Netscape</title> <link>http://slashdot.org/article.pl?sid=00/01/13/0711258</link> </item> </rdf:RDF>

The attributes of the channel and image elements can be retrieved directly from the plugin object using the familiar dotted compound notation:

    [% tt_start_tag %] news.channel.title  [% tt_end_tag %]
    [% tt_start_tag %] news.channel.link   [% tt_end_tag %]
    [% tt_start_tag %] news.channel.etc... [% tt_end_tag %]  
    [% tt_start_tag %] news.image.title    [% tt_end_tag %]
    [% tt_start_tag %] news.image.url      [% tt_end_tag %]
    [% tt_start_tag %] news.image.link     [% tt_end_tag %]
    [% tt_start_tag %] news.image.etc...   [% tt_end_tag %]  

The list of news items can be retrieved using the 'items' method:

    [% tt_start_tag %] FOREACH item = news.items [% tt_end_tag %]
       [% tt_start_tag %] item.title [% tt_end_tag %]
       [% tt_start_tag %] item.link  [% tt_end_tag %]
    [% tt_start_tag %] END [% tt_end_tag %]
[%- END %] [% WRAPPER section title="AUTHORS" -%]

This plugin was written by Andy Wardley <abw@kfs.org>, inspired by an article in Web Techniques by Randal Schwartz <merlyn@stonehenge.com>.

The XML::RSS module, which implements all of the functionality that this plugin delegates to, was written by Jonathan Eisenzopf <eisen@pobox.com>.

[%- END %] [% WRAPPER section title="VERSION" -%]

2.51, distributed as part of the Template Toolkit version 2.08, released on 30 July 2002.

[%- END %] [% WRAPPER section title="COPYRIGHT" -%]
  Copyright (C) 1996-2002 Andy Wardley.  All Rights Reserved.
  Copyright (C) 1998-2002 Canon Research Centre Europe Ltd.

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

[%- END %] [% WRAPPER section title="SEE ALSO" -%]

[% ttlink('Template::Plugin', 'Template::Plugin') -%], [% ttlink('XML::RSS', 'XML::RSS') -%], [% ttlink('XML::Parser', 'XML::Parser') -%]

[%- END %]