Boîte à Outils 1

Objectif :
– On doit construire un programme qui parcourt une arborescence de fichiers
et appliquer un traitement sur chacun des fichiers rencontrés au moment du
parcours.

– En sortie, le programme doit construire un fichier structuré en XML contenant
une trace du traitement réalisé sur les fichiers.

– Applications à partir d'une arborescence de fils RSS :
● solution 1 : un script perl "à la loyale"
● solution 2 : un script perl à partir de la bibliothèque XML::RSS

– Traitement à réaliser :
● filtrer les contenus textuels à l'intérieur des balises DESCRIPTION et TITLE contenues dans les
balises ITEM.
● à partir de Cygwin B20

Script Perl "à la loyale"

Notre première solution est d'écrire un script perl qui utilise des expressions régulière et qui repose sur une seule fonction dans laquelle est décrit tout le traitement à faire sur les fils RSS.

Tout d'abord, on initialise une variable contenant le flux de sortie :


initialisation



Avant d'effectuer le traitement, il faut récupérer les noms des différentes rubriques via la fonction &parcoursarborescencefichierspourrepererlesrubriques et défininir les noms des fichiers de sortie .txt et .xml :


rubriques



Une fois l'encodage UTF-8 trouvé, on nettoite le texte à l'aide de la fonction sub nettoietexte et on garde seulement le contexte contenu entre les balises <TITLE></TITLE> et <ABSTRACT></ABSTRACT>


nettoyage


fonction nettoie
fonction sub nettoietexte



Télécharger le script perl



Pour lancer le script, nous vous conseillons d'utiliser l'invite de commande Cygwin B20, lier à ActivePerl, présentée comme suit :


B20


NB : nous avons connus quelques problèmes d'encodage avec les sorties malgré le fait qu'elles étaient notées en UTF-8.


Télécharger le fichier de sortie .txt Rub EXAMENS-2009

Télécharger le fichier de sortie .xml Rub EXAMENS-2009

[haut de page]

Script Perl avec la bibliothèque XML::RSS

Notre deuxième solution est d'écrire un script perl qui utilise la bibliothèque XML::RSS.


Tout d'abord nous devons indiquer la bibliothèque utilisée dans le script grâce à la  commande use


use



Puis on indique le fichier de sortie :

sortie



On doit ensuite utiliser la commande eval afin d'effectuer une extraction du contenu textuel :


eval



Télécharger le script XML::RSS


NB : le problème présent avec le script perl ne s'est pas présenté ici.
Les fichiers de sorties du script perl avec la bibliothèque XML::RSS correspondent à ceux du script perl "à la loyale"

[haut de page]