 #/usr/bin/perl
<<DOC; 
Votre Nom : 
JANVIER 2005
 usage : perl parcours-arborescence-fichiers repertoire-a-parcourir
 Le programme prend en entrée le nom du répertoire contenant les fichiers
 à traiter
 Le programme construit en sortie un fichier structuré contenant sur chaque
 ligne le nom du fichier et le résultat du filtrage :
<FICHIER><NOM>du fichier</NOM></FICHIER><CONTENU>du filtrage</CONTENU></FICHIER>
DOC
#-----------------------------------------------------------
my $rep="$ARGV[0]";
# on s'assure que le nom du répertoire ne se termine pas par un "/"
$rep=~ s/[\/]$//;

# %rub_fich tableaudonnantlequivalenceentrelenomdefichieretlarubrique
%rub_fich=(
	"3208"=>"ALAUNE.xml",
	"3232"=>"OPINIONS.xml",
	"3210"=>"INTERNATIONAL.xml",
	"829254"=>"LESELECTIONSAMERICAINES.xml",
	"3214"=>"EUROPE.xml",
	"3224"=>"SOCIETE.xml",
	"3234"=>"ECONOMIE.xml",
	"3236"=>"MEDIAS.xml",
	"3238"=>"RENDEZVOUS.xml",
	"3242"=>"SPORTS.xml",
	"3244"=>"ENVIRONNEMENTSCIENCES.xml",
	"3246"=>"CULTURE.xml",
	"651865"=>"TECHNOLOGIE.xml",
	"3476"=>"CINEMA.xml",
	"3546"=>"VOYAGES.xml",
	"3260"=>"LIVRES.xml",
	"3404"=>"EXAMENS.xml",
	"823353"=>"POLITIQUE.xml",
	"987718"=>"MUNICIPALESETCANTONNALES.xml",
	"876502"=>"PODCASTTELEZAPPING.xml",
	"970371"=>"PODCASTRADIOZAPPING.xml" );
parcoursarborescencefichiers($rep);	#recurse!
exit;
#----------------------------------------------exit;
#----------------------------------------------
sub parcoursarborescencefichiers {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
	    next if $file =~ /^\.\.?$/;
	    $file = $path."/".$file;
	    if (-d $file) {
	        &parcoursarborescencefichiers($file);	#recurse!
	    }
	    if (-f $file) { 
	    # 1) s'assurer que le fichier se termine par .xml
	    # 2) c'est vrai. Repérer la rubrique et le nom de fichier de sortie
        # 3) parcourir le fichier $file, extraire le texte et écrire dans la bonne sortie
		 if ($file=~/\.xml$/) {
			foreach my $k (keys (%rub_fich)){
				if($file=~/$k/){
					$cle=$k;
					print "cle = $cle\n";
				}
			}
			print "fichier = $rub_fich{$cle} $file\n";
			open(FILEOUT,">>resultats/$rub_fich{$cle}");
			open(FILEINPUT,$file);
			while ($ligne=<FILEINPUT>){
			  #print "LIGNE : $ligne";
	          if ($ligne=~/<description>([^<]*)<\/description>|<title>([^<]*)<\/title>/) {
			  
		          $a=$1;
				  #print "AAAAAA : $a \n";
				  #nettoyage
				  $a=~s/Retrouvez l\'ensemble des d&#233;p&#234;ches sur http:\/\/www.lemonde.fr//g;
				  $a=~s/&#38;#39;/\'/g; #&#38;#39; = apostrophe
                  $a=~s/&#38;#34;/\"/g; #  &#38;#34; = guillemets ouvrants ou fermants.
				  $a=~s/&#233;/é/g;
				  $a=~s/&#234; /ê/g; #  &#234; = ê= accent circonflexe
				  $a=~s/&#91;//g;
				  $a=~s/&#93;//g;
			      $a=~s/Ã©/é/g;
			      $a=~s/Ãª/ê/g;  #Ãª ê= accent circonflexe
			      $a=~s/Ã¨/è/g;
			      $a=~s/Ã/à/g;
			      $a=~s/Ã§/ç/g;
			      $a=~s/à§/ç/g;
			      $a=~s/Ã´/ô/g;	
                  if ($a!~/^[ ]*$/) {
		                print FILEOUT $a,"\n";
				  }
                }
				#treetagger
				
            }
		    close(FILEINPUT);
            close(FILEOUT);
		 }
	 
	 
	    }
    }	
	 
} 
#-------------------------
	
