#/usr/bin/perl
use XML::XPath;
use Unicode::String qw(utf8);
# On vérifie le nombre d'arguments de l'appel au script ($0 : le nom du script)
if($#ARGV!=0){
	print "usage : perl $0 fichier_tag fichier_motif";
	exit;
}
#---------------------------------------------------------------------------------------------------------------------------------------------------
my $encodagesortie="utf-8";
open(OUT1,">:encoding($encodagesortie)","sortie-textebrut-avec-xmlxpath.txt");
open(OUT2,">:encoding($encodagesortie)","sortie-textexml-avec-xmlxpath.xml");
print OUT2 "<?xml version=\"1.0\" encoding=\"$encodagesortie\" ?>\n";
print OUT2 "<file>\n";
print OUT2 "<name>$ARGV[0]</name>\n";
# Enregistrement des arguments dans les variables idoines
my $input_file= shift @ARGV;
# lecture du fichier contenant les motifs, un motif par ligne (par exemple : NOM ADJ)
my $xp = XML::XPath->new( filename => $input_file ) or die "big trouble";
#
my $search_path.="//item";
	# boucle sur les nœud s reconnus du chemin xpath
foreach my $noeud ( $xp->find($search_path)->get_nodelist ) {
	my $titre=$noeud->find('title')->string_value;
	my $resume=$noeud->find('description')->string_value;
	$titre=&nettoietexte($titre);
	$resume=&nettoietexte($resume);
	if (uc($encodage) ne "UTF-8") {utf8($titre);utf8($resume);}
	print OUT1 "Titre : $titre \n";
	print OUT1 "Resume : $resume \n";;
	print OUT2 "<item><title>$titre</title><abstract>$resume</abstract></item>\n";
}

#----------------------------------------------------------
print OUT2 "</items>\n</file>\n";
close(OUT1);
close(OUT2);
close(FILE);
exit;

sub nettoietexte {
    my $texte=shift;
    $texte=~s/&#39;/'/g;
    $texte=~s/&#34;/"/g;
    $texte =~ s/&lt;/</g;
    $texte =~ s/&gt;/>/g;
    $texte =~ s/<a href[^>]+>//g;
    $texte =~ s/<img[^>]+>//g;
    $texte =~ s/<\/a>//g;
    $texte =~ s/&#38;#39;/'/g;
    $texte =~ s/&#38;#34;/"/g;
    $texte =~ s/<[^>]+>//g;
    return $texte;
}
