XML::RSSLite - lightweight, "relaxed" RSS (and XML-ish) parser
use XML::RSSLite; . . . parseRSS(\%result, \$content); print "=== Channel ===\n", "Title: $result{'title'}\n", "Desc: $result{'description'}\n", "Link: $result{'link'}\n\n"; foreach $item (@{$result{'item'}}) { print " --- Item ---\n", " Title: $item->{'title'}\n", " Desc: $item->{'description'}\n", " Link: $item->{'link'}\n\n"; }
This module attempts to extract the maximum amount of content from available documents, and is less concerned with XML compliance than alternatives. Rather than rely on XML::Parser, it uses heuristics and good old-fashioned Perl regular expressions. It stores the data in a simple hash structure, and "aliases" certain tags so that when done, you can count on having the minimal data necessary for re-constructing a valid RSS file. This means you get the basic title, description, and link for a channel and its items.
This module extracts more usable links by parsing "scriptingNews" and "weblog" formats in addition to RDF & RSS. It also "sanitizes" the output for best results. The munging includes:
$inScalarRef is a reference to a scalar containing the document to be parsed, the contents will effectively be destroyed. $outHashRef is a reference to the hash within which to store the parsed content.
Reference to hash to store the parsed document within.
Reference to scalar containing the document to parse.
Tag to consider the root node, leaving this undefined is not recommended.
This is not a conforming parser. It does not handle the following
<foo bar=">">
<foo><bar> <bar></bar> <bar></bar> </bar></foo>
<![CDATA[ ]]>
PI
It's non-validating, without a DTD the following cannot be properly addressed
This may or may not be arriving in some future release.
perl(1), XML::RSS, XML::SAX::PurePerl, XML::Parser::Lite, <XML::Parser>
XML::RSS
XML::SAX::PurePerl
XML::Parser::Lite
Jerrad Pierce <jpierce@cpan.org>.
Scott Thomason <scott@thomasons.org>
Portions Copyright (c) 2002,2003,2009 Jerrad Pierce, (c) 2000 Scott Thomason. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2 POD Errors
The following errors were encountered while parsing the POD:
You forgot a '=back' before '=head2'
=back without =over
To install XML::RSSLite, copy and paste the appropriate command in to your terminal.
cpanm
cpanm XML::RSSLite
CPAN shell
perl -MCPAN -e shell install XML::RSSLite
For more information on module installation, please visit the detailed CPAN module installation guide.