2xml2html.pl

#!/usr/bin/perl
use locale; #caracteres accentues
#On lance comme cela: perl 2xml2html.pl ./arborescence-filsdumonde-2008-tljours-19h/2008 > exit.txt
#On obtient: sortie-livres-culture-xml.html
print "Bienvenu(e) au programme qui permet \n d'afficher la sortie XML de \n parcours-arborescence-fichiers-2out.pl en HTML en \n faisant le meme parcours que celui-ci. \n";
#Tous les fichiers sortent en HTML
my $rep="$ARGV[0]";
# on s'assure que le nom du répertoire ne se termine pas par un "/"
$rep=~ s/[\/]$//;
# on initialise les variables contenant les flux de sortie
my $DUMPFULL1="";
my $DUMPFULL2="";
#----------------------------------------
my $output1="sortie-livres-culture.html";
open (FILEOUTPUT);
if (open (FILEOUTPUT,">$output1"))
{
#----------------------------------------
&parcoursarborescencefichiers($rep); #recurse!
#----------------------------------------
print FILEOUTPUT"<html>\n<head>\n<title>Les rubriques Culture et Livres sur lemonde.fr<\/title>\n<meta http-equiv=\"content-type\" content=\"text/html\; charset=windows-1250\">\n<\/head>\n<body bgcolor=\"\#5EC3FB\" text=\"\#12162E\" link=\"\#B40002\" alink=\"\#0C340C\" vlink=\"\#67284C\">\n<body background =\"./IMAGES/rss-news.jpg\">\n<blockquote>\n<h2>sortie-livres-culture.xml<\/h2>\n<font color=\"blue\">\n&lt\;?xml version=&quot\;1.0&quot\; encoding=&quot\;iso-8859-1&quot\; ?&gt\;<\/font><\/br>\n";
print FILEOUTPUT "<font color=\"blue\">&lt;PARCOURS&gt;<\/font><\/br>\n";
print FILEOUTPUT "<font color=\"blue\">&lt;NOM&gt;<\/font>Del Socorro Françoise<font color=\"blue\">&lt;/NOM&gt;<\/font><\/br>\n";
print FILEOUTPUT "<font color=\"blue\">&lt;FILTRAGE&gt;<\/br>&lt;LIVRES&gt;<\/font><br><font color=\"\#3F0F11\">".$DUMPFULL1."<\/font><font color=\"blue\">&lt;/LIVRES&gt;<\/font><\/br>\n";
print FILEOUTPUT "<font color=\"blue\">&lt;CULTURE&gt;<\/font><br><font color=\"\#3D5A33\">".$DUMPFULL2."<\/font><font color=\"blue\">&lt;/CULTURE&gt;<\/br>&lt;/FILTRAGE&gt;<\/font><\/br>\n";
print FILEOUTPUT "<font color=\"blue\">&lt;/PARCOURS&gt;<\/font><p><a href=\"\.\/index.htm\"><img src=\"\.\/IMAGES\/index\.gif\"><\/a><\/blockquote><\/body><\/html>\n";
}
else { die "Pb a l'ouverture du fichier $output1"};
close(FILEOUTPUT);
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)
{
# Insérer ici votre code (le filtreur)
open(FILEINPUT,"$ARGV[0]");
if (($file=~/0,2-3260,1-0,0\.xml/) || ($file=~/0,2-3246,1-0,0\.xml/))
{
open(FILEINPUT, "$file");
$i=1;
print $file, "\n";
while ($ligne = <FILEINPUT>)
{
if ($ligne=~/<description>([^<]+)<\/description>/)
{
my $recup=$1; #la variable $1 est remplacée par recup
$recup=~s/&#38;#39;/\'/g;
$recup=~s/&#38;#34;/\"/g;
$recup=~s/&#233;/é/g;
$recup=~s/é/é/g;
$recup=~s/&#234;/ê/g;
$recup=~s/&amp;eacute;/é/g;
$recup=~s/&amp;egrave;/è/g;
$recup=~s/&amp;euml;/ë/g;
$recup=~s/&amp;ecirc;/ê/g;
$recup=~s/&amp;agrave;/à/g;
$recup=~s/&amp;acirc;/â/g;
$recup=~s/&amp;ccedil;/ç/g;
$recup=~s/&amp;iuml;/ï/g;
$recup=~s/&amp;icirc;/î/g;
$recup=~s/&amp;ugrave;/ù/g;
$recup=~s/&amp;uuml;/ü/g;
$recup=~s/à/&agrave;/g;
$recup=~s/á/&aacute;/g;
$recup=~s/â/&acirc;/g;
$recup=~s/ã/&atilde;/g;
$recup=~s/ä/&auml;/g;
$recup=~s/å/&aring;/g;
$recup=~s/æ/&aelig;/g;
$recup=~s/è/&egrave;/g;
$recup=~s/é/&eacute;/g;
$recup=~s/ê/&ecirc;/g;
$recup=~s/ë/&euml;/g;
$recup=~s/è/&egrave;/g;
$recup=~s/é/&eacute;/g;
$recup=~s/ê/&ecirc;/g;
$recup=~s/ë/&euml;/g;
$recup=~s/ì/&igrave;/g;
$recup=~s/í/&iacute;/g;
$recup=~s/î/&icirc;/g;
$recup=~s/ï/&iuml;/g;
$recup=~s/ò/&ograve;/g;
$recup=~s/ó/&oacute;/g;
$recup=~s/ô/&ocirc;/g;
$recup=~s/õ/&otilde;/g;
$recup=~s/ö/&ouml;/g;
$recup=~s/ù/&ugrave;/g;
$recup=~s/ú/&uacute;/g;
$recup=~s/û/&ucirc;/g;
$recup=~s/ü/&uuml;/g;
$recup=~s/ç/&ccedil;/g;
$recup=~s/Retrouvez l'ensemble des d&eacute;p&ecirc;ches sur http:\/\/www\.lemonde\.fr/ /g;
$recup=~s/Chaque mercredi, retrouvez une s&eacute;lection d'artistes qui font ou feront l'actualit&eacute; musicale sur la Toile./ /g;
$recup=~s/Toute l'actualit&eacute; au moment de la connexion/ /g;
$recup=~s/Toute l'actualité au moment de la connexion/ /g;
$recup=~s/&lt;((\w)*(\W*))*&gt;/ /g; #enlève toutes les balises
$recup=~s/\.\.\./ /g; #supprime les points de suspension car on ne peut savoir si il s'agit d'un milieu de ligne ou d'une fin de ligne
$recup=~s/\)/ /g; #enlève toutes les parenthèse fermantes
$recup=~s/\(/ /g; #enlève toutes les parenthèse ouvrantes
$recup=~s/"/ /g; #enlève tous guillemets
####
if ($file=~/0,2-3260,1-0,0\.xml/) #livres
{
$DUMPFULL1.="<font color=\"\#143617\">&lt;extract num=\"$i\"&gt;<\/font>$recup<font color=\"\#143617\">&lt;\/extract&gt;<\/font><\/br> \n"; #récupère le fichier xml
$DUMPFULL1=~s/( )*\n( )*\n//g; #supprime les sauts de ligne répétés
$DUMPFULL1=~s/<font color=\"\#143617\">&lt;extract num="1"&gt;<\/font>( )*<font color=\"\#143617\">&lt;\/extract&gt;<\/font><\/br> \n//g; # enlève tous les extract répétés
$DUMPFULL1=~s/extract&gt;&lt;extract/extract&gt;\n&lt;extract/g; #va à la ligne après chaque balise extract
}
else #culture
{
$DUMPFULL2.="<font color=\"\#143617\">&lt;extract num=\"$i\"&gt;</font>$recup<font color=\"\#143617\">&lt;\/extract&gt;</font><\/br> \n"; #récupère le fichier xml
$DUMPFULL2=~s/( )*\n( )*\n//g; #supprime les sauts de ligne répétés
$DUMPFULL2=~s/<font color=\"\#143617\">&lt;extract num="1"&gt;<\/font>( )*<font color=\"\#143617\">&lt;\/extract&gt;<\/font><\/br> \n//g; # enlève tous les extract répétés
$DUMPFULL2=~s/extract&gt;&lt;extract/extract&gt;\n&lt;extract/g; #va à la ligne après chaque balise extract
}
$i++;
}
}
close(FILEINPUT);
close(FILEOUT1);
close(FILEOUT2);
print $i++,"\n";
}
}
}
}
#----------------------------------------------