#!/usr/bin/perl use XML::RSS; use Unicode::String qw(utf8); use warnings; use strict; my $racine=$ARGV[0]; $racine=~s/\/$//; my $encodagesortie="utf-8"; my $encodage=`file -i $ARGV[0] | cut -d= -f2`; open(OUT1,">:encoding($encodagesortie)","sortie-txtbrut-xmlrss.txt"); open(OUT2,">:encoding($encodagesortie)","sortie-xml-xmlrss.txt"); print OUT2 "\n"; print OUT2 "\n"; print OUT2 "$ARGV[0]\n"; &recurse($racine); print OUT2 "\n\n"; close(OUT1); close(OUT2); exit; sub recurse { sub recuprub { my $dossier=shift(@_); opendir(DOSSIER, $dossier) or die "can't open $dossier : $!\n"; my @fics = readdir(DOSSIER); closedir(DOSSIER); foreach my $fic(@fics) { next if $fic=~/^\.\.?$/; my $fic=$dossier."/".$fic; print $fic,"\n"; if (($fic eq ".") or ($fic eq "..")) { print "je suis sur . ou .. : je ne fais rien"; next }; if (-d $fic) { my $chemin=$dossier."/".$fic; &recurse($fic); } if (-f $fic) { if (($fic=~/.*?.xml$)) { print $fic, "\n"; my $rss=new XML::RSS; $rss->parsefile($fic); #if ($@){ # $@=~s/at \/.*?$//s; # print "\nERROR in '$fic':\n$@\n"; # } else { my $date=$rss->{'channel'}->{'pubDate'}; print OUT2 "".$date.""\n; print OUT2 "\n"; foreach my $item (@{$rss->{'items'}}){ my $titre=$item->{'title'}; my $description=$item->{'description'}; $titre=&nettoietexte($titre); $description=&nettoietexte($description); if (uc($encodage) ne"UTF-8") {utf8($titre);utf8($description);} print OUT1 "Titre : $titre \n"; print OUT1 "Resume : $description \n"; print OUT2 "".$titre."".$description."\n"; } } } } } } } }