#/usr/bin/perl
<<DOC; 
Marguerite Leenhardt - Marianna Kucharski
Programme pour étiquetage Cordial BàO 2.
Le programme est le même que celui de la BàO1 (programme de filtrage),
sauf que la sortie sera ici un fichier au format texte. 
On ne rajoute donc pas de balise dans le fichier de sortie, seulement le texte filtré concaténé.
DOC

#-----------------------------------------------------------
my $rep="$ARGV[0]";

$rep=~ s/[\/]$//;

my $DUMPFULL1="";
#----------------------------------------
my $output1="SORTIEpourcordial.txt";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};
#----------------------------------------
&parcoursarborescencefichiers($rep);	
#----------------------------------------

print FILEOUT $DUMPFULL1;

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);	
		}
		if (-f $file && $file =~ /0,.*\.xml$/)
		{

			open(FILEINPUT,$file);
			
			while ($ligne = <FILEINPUT>){
				if ($ligne=~/<title>([^<]+)<\/title>/) {
					$texte_brut=&nettoyage_entites_xml($1);
					$DUMPFULL1.="$texte_brut\n";
					     
				}
				if ($ligne=~/<description>([^<]+)<\/description>/) {
						$texte_brut=&nettoyage_entites_xml($1);
						$DUMPFULL1.="$texte_brut\n";
						
					}
					
				}
			}
			close(FILEINPUT);
#Ici, on a  seulement appliqué la procédure de nettoyage à tous les contenus de <title> et <description>, filtré ces contenus et concaténé le tout pour obtenir en sortie un fichier #texte qu'on étiquetera avec Cordial.
#On a donc retiré les balises xml. 
			print $i++,"\n";
		}
	}
}
#----------------------------------------------
sub nettoyage_entites_xml{
					$txt_b= shift @_;
					$txt_b=~s/&#38;#39;/\'/g;
					$txt_b=~s/&#38;#34;/\"/g;
					$txt_b=~s/&#233;/é/g;
					$txt_b=~s/&#234;/ê/g;
					return $txt_b;
}