#/usr/bin/perl 
use XML::LibXML; 
# 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 $encodagesortiexml="utf-8";
my $encodagesortietxt="iso-8859-1";
open(OUT1,">:encoding($encodagesortietxt)","./SORTIE/bao1-extraction-xmllibxml.txt"); 
open(OUT2,">:encoding($encodagesortiexml)","./SORTIE/bao1-extraction-xmllibxml.xml"); 
print OUT2 "<?xml version=\"1.0\" encoding=\"$encodagesortiexml\" ?>\n"; 
print OUT2 "<file>\n"; 
print OUT2 "<name>$ARGV[0]</name>\n"; 
my $input_file= shift @ARGV; 
my $parser = XML::LibXML->new(); 
my $xp = $parser->parse_file($input_file); 
# boucle sur les nœud s reconnus du chemin xpath 
foreach my $noeud ( $xp->findnodes('//item')->get_nodelist ) { 
       my       $titre=$noeud->findnodes('title')->string_value;       
       my       $resume=$noeud->findnodes('description')->string_value;       
       $titre=&nettoietexte($titre);       
       $resume=&nettoietexte($resume);       
       print OUT1 "Titre : $titre \n"; 
       print OUT1 "Resume : $resume \n";; 
       print       OUT2       
"<item><title>$titre</title><abstract>$resume</abstract></item>\n"; 
} 
#---------------------------------------------------------- 
print OUT2 "</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; 
}  