#!/usr/bin/perl
<<DOC; 
Votre Nom : Faïna Ramdani
FEVRIER 2006
 usage : perl p 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/[\/]$//;
# on initialise une variable contenant le flux de sortie 
my $DUMPFULL = "";
#----------------------------------------
my $output = "SORTIE.xml";
if (!open (FILEOUT,">>$output")) { die "Pb a l'ouverture du fichier $output"};

print FILEOUT "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n";
print FILEOUT "<PARCOURS>\n";
print FILEOUT "\t<NOM>Faïna Ramdani</NOM>\n";
print FILEOUT "\t<FILTRAGE>\n";
#----------------------------------------
&parcoursarborescencefichiers($rep);
#----------------------------------------
print FILEOUT "\t</FILTRAGE>\n";
print FILEOUT "</PARCOURS>\n";
close(FILEOUT);
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) {
			open(FILEINPUT,"$file") or die "Can't open ".$file."!\n";
			print FILEOUT "\t\t<file>\n\t\t\t<name>$file</name>\n";
			while ($ligne = <FILEINPUT>) {
				if ($ligne =~ /<description>(.*)<\/description>/) {
					$tmp = $1;
					#on formate les caractères moches
					$tmp =~ s/Ã§/ç/g;
					$tmp =~ s/&#38;#39;/\'/g;
					$tmp =~ s/&#38;#34;/\"/g;
					$tmp =~ s/Ã©/é/g;
					$tmp =~ s/&#233;/é/g;
					$tmp =~ s/&#234;/ê/g;
					$tmp =~ s/Ã§/ç/g; 
					$tmp =~ s/&#39;/\'/g;
					$tmp =~ s/&#34;/\"/g;
					$tmp =~ s/é/é/g;
					$tmp =~ s/ê/ê/g;
                    print FILEOUT "<content>$tmp</content>\n";
				}    
			}
            print FILEOUT "\t\t</file>\n";
			close FILEINPUT;
			print $i++.": ".$file." \n";
		}
	}
}
