Hi, I have written a small perl script that reads a few RSS flows and generate an HTML file. It seems one of them have non-ASCII character not encoded ; this make the script stop.
*** perl script says
***
not well-formed (invalid token) at line 90, column 63, byte 3936 at
/usr/pkg/lib/perl5/vendor_perl/5.8.0/sparc64-netbsd-thread-multi/XML/Parser.pm
line 187
if I manually fetch the RSS file and read it, the problem ("at line 90,
column 63") is the "ö" from "... Rainer Brinkmöller, I...".
I don't find which part of my script to modify :(
Any idea ?
TIA,
Jo
PS: my script is :
########################################################################
#!/usr/bin/env perl
#
# Get RSS News and generate HTML files for inclusion
#
use strict;
use XML::RSS;
use LWP::Simple;
use File::Basename;
use URI::Escape;
# List of RSS/News
#
# "10-hubertf" => "http://www.feyrer.de/NetBSD/blog-rss.xml",
my %news = (
"05-netbsd" => "http://www.netbsd.org/Changes/rss-netbsd.xml",
"06-ndigest" => "http://digest.coris.org.uk/feeds/cvs-rss.xml",
"10-hubertf" => "http://www.feyrer.de/NetBSD/blog-rss.xml",
"15-undeadly" => "http://undeadly.org/cgi?action=rss",
"20-afp" => "http://www.afp.com/francais/rss/stories.xml"
);
# For all of the RSS sources listed above
#
foreach my $k (keys(%news)) {
my $rss = new XML::RSS();
my $raw = get($news{$k});
$rss->parse($raw);
my $nonews = @{$rss->{'items'}};
if($nonews > 5) { $nonews = 5 }; # Only show the 5 more
recent news ;)
open(FILEWRITE, "> " . dirname($0) . "/" . $k . ".html");
print FILEWRITE "<h1>" . $rss->channel('title') . " <a href=\""
. $rss->channel('link') . "\">[+]</a></h1>\n";
print FILEWRITE "<ul>\n";
for (my $i=0; $i<$nonews; $i++) {
my $item = @{$rss->{'items'}}[$i];
my $title = $item->{'title'};
my $url = $item->{'link'};
$url =~ s/\&sid/\&sid/;
print FILEWRITE "<li><a href=\"" . $url . "\">" . $title
. "</a></li>\n";
}
print FILEWRITE "</ul>\n";
close FILEWRITE;
}
########################################################################
--
,- This mail runs ------.
`--------- NetBSD/smtp -'
pgpjZIx6ypdws.pgp
Description: PGP signature
