#!/usr/local/bin/perl use strict; use lib '/home/entropch/lib/perl5/site_perl/5.005'; use lib '/home/entropch/lib/perl5/site_perl/5.005/i386-linux'; use CGI; use LWP::Simple; use XML::Sablotron; my $RSSNS_2_XSL = { 'http://my.netscape.com/rdf/simple/0.9/' => 'rss-09.xsl', 'http://purl.org/rss/1.0/' => 'rss-10.xsl' }; my $CGI = CGI->new(); my $url = $CGI->param('url'); unless ($url) { $CGI->param(url => 'http://www.news.perl.org/perl-news-short.rdf'); print $CGI->redirect($CGI->self_url()); exit(); } my $content = LWP::Simple::get($url); my ($rss_ns) = $content =~ m!xmlns="(.+?)"!; my $xsl_filename = $RSSNS_2_XSL->{$rss_ns}; if (!$xsl_filename and $content =~ /rss version="0.91"/i) { $xsl_filename = 'rss-091.xsl'; } my $stylesheet = `cat $xsl_filename`; my $result; XML::Sablotron::ProcessStrings($stylesheet, $content, $result); print CGI->header('text/html'); print $result;