Code du filtreur
Consignes et code de base
Il était demandé de modifier le code suivant de façon à :
- Extraire le contenu de la balise titre
- Extraire le contenu de la balise description
- Rendre le programme plus générique
Le code fourni était le suivant :
#!/usr/bin/perl open(FILEINPUT,"$ARGV[0]"); while ($ligne = <FILEINPUT>){ if ($ligne=~/REGEXP/) { print $ligne; } } close(FILEINPUT);
Modifications apportées
Le fichier RSS récupéré à des fins de test ne fait usage que d’un saut de ligne après la déclaration d’une feuille de style XSLT, en conséquence de quoi le code, qui est censé afficher les lignes où sont trouvées le motif désiré, va afficher une ou plusieurs fois le contenu entier du fichier. Il est donc modifié de façon à n’afficher sur la sortie que la partie matchée, et non la ligne entière.
En outre, comme les deux premières modifications demandées par le sujet sont des cas particuliers
dans la troisième, elles sont étés sautées.
Le code est rendu plus générique en prenant en argument du script (second argument) le nom de
la balise utilisée dans le motif à chercher.
#!/usr/bin/perl open(FILEINPUT,"$ARGV[0]"); my $tag = $ARGV[1]; while ($ligne = <FILEINPUT>){ if ($ligne=~/(<$tag>[^<]*<\/$tag>)/) { print $1; } } close(FILEINPUT);