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<\;?xml version="\;1.0"\; encoding="\;iso-8859-1"\; ?>\;<\/font><\/br>\n"; print FILEOUTPUT "<font color=\"blue\"><PARCOURS><\/font><\/br>\n"; print FILEOUTPUT "<font color=\"blue\"><NOM><\/font>Del Socorro Françoise<font color=\"blue\"></NOM><\/font><\/br>\n"; print FILEOUTPUT "<font color=\"blue\"><FILTRAGE><\/br><LIVRES><\/font><br><font color=\"\#3F0F11\">".$DUMPFULL1."<\/font><font color=\"blue\"></LIVRES><\/font><\/br>\n"; print FILEOUTPUT "<font color=\"blue\"><CULTURE><\/font><br><font color=\"\#3D5A33\">".$DUMPFULL2."<\/font><font color=\"blue\"></CULTURE><\/br></FILTRAGE><\/font><\/br>\n"; print FILEOUTPUT "<font color=\"blue\"></PARCOURS><\/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/&#39;/\'/g; $recup=~s/&#34;/\"/g; $recup=~s/é/é/g; $recup=~s/é/é/g; $recup=~s/ê/ê/g; $recup=~s/&eacute;/é/g; $recup=~s/&egrave;/è/g; $recup=~s/&euml;/ë/g; $recup=~s/&ecirc;/ê/g; $recup=~s/&agrave;/à/g; $recup=~s/&acirc;/â/g; $recup=~s/&ccedil;/ç/g; $recup=~s/&iuml;/ï/g; $recup=~s/&icirc;/î/g; $recup=~s/&ugrave;/ù/g; $recup=~s/&uuml;/ü/g; $recup=~s/à/à/g; $recup=~s/á/á/g; $recup=~s/â/â/g; $recup=~s/ã/ã/g; $recup=~s/ä/ä/g; $recup=~s/å/å/g; $recup=~s/æ/æ/g; $recup=~s/è/è/g; $recup=~s/é/é/g; $recup=~s/ê/ê/g; $recup=~s/ë/ë/g; $recup=~s/è/è/g; $recup=~s/é/é/g; $recup=~s/ê/ê/g; $recup=~s/ë/ë/g; $recup=~s/ì/ì/g; $recup=~s/í/í/g; $recup=~s/î/î/g; $recup=~s/ï/ï/g; $recup=~s/ò/ò/g; $recup=~s/ó/ó/g; $recup=~s/ô/ô/g; $recup=~s/õ/õ/g; $recup=~s/ö/ö/g; $recup=~s/ù/ù/g; $recup=~s/ú/ú/g; $recup=~s/û/û/g; $recup=~s/ü/ü/g; $recup=~s/ç/ç/g; $recup=~s/Retrouvez l'ensemble des dépêches sur http:\/\/www\.lemonde\.fr/ /g; $recup=~s/Chaque mercredi, retrouvez une sélection d'artistes qui font ou feront l'actualité musicale sur la Toile./ /g; $recup=~s/Toute l'actualité au moment de la connexion/ /g; $recup=~s/Toute l'actualité au moment de la connexion/ /g; $recup=~s/<((\w)*(\W*))*>/ /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\"><extract num=\"$i\"><\/font>$recup<font color=\"\#143617\"><\/extract><\/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\"><extract num="1"><\/font>( )*<font color=\"\#143617\"><\/extract><\/font><\/br> \n//g; # enlève tous les extract répétés $DUMPFULL1=~s/extract><extract/extract>\n<extract/g; #va à la ligne après chaque balise extract } else #culture { $DUMPFULL2.="<font color=\"\#143617\"><extract num=\"$i\"></font>$recup<font color=\"\#143617\"><\/extract></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\"><extract num="1"><\/font>( )*<font color=\"\#143617\"><\/extract><\/font><\/br> \n//g; # enlève tous les extract répétés $DUMPFULL2=~s/extract><extract/extract>\n<extract/g; #va à la ligne après chaque balise extract } $i++; } } close(FILEINPUT); close(FILEOUT1); close(FILEOUT2); print $i++,"\n"; } } } } #----------------------------------------------