Objectif

L'objectif de cette partie est d'extraire le contenu textuel (les titres et les résumés) de chaque fil RSS en les regroupant par rubrique dans un fichier portant le nom de cette rubrique. Le tout se faisant en UTF-8 aux formats text et XML.

Cette tâche est accomplie à l'aide de 4 méthodes différentes présentées ci-dessous. Cependant ces 4 méthodes présentent des points communs.

Points communs

    Procédure principale
Elle est commune :

- récupère le répertoire contenant les fils à traiter,

- crée un répertoire où seront stockés les résultats,

- initialise un tableau de hashage qui permettra d'éviter la répétition éventuelle des contenus des fils,

- lance le sous-programme qui parcourt récursivement l'arborescence du répertoire,

- ajoute la balise fermante </file> à chaque fichier XML créé.


La procédure principale

    Sous-programmes
Seuls le parcours récursif, la détection de l'encodage et de la rubrique et le nettoyage du texte sont communs :

- le parcours récursif consiste simplement en un test sur le type de
l'élément pointé : s'il s'agit d'un dossier, la procédure de parcours
est relancée, s'il s'agit d'un fichier, il est traité.

- la détection de l'encodage, qui ne peut être que de l'iso-latin-1 ou
de l'UTF-8, se fait par l'intermédiaire d'une expression régulière
simple.


Détection de l'encodage

- la détection de la rubrique se fait en plusieurs étapes : tout
d'abord, on récupère le contenu de la balise <title> (ex : ) dans
lequel on enlève les diacritiques, puis la suite de caractères "Le
Monde.fr" et tous les espaces. Ce qui reste est l'intitulé de la
rubrique que l'on met en majuscules


Détection de la rurbique

- le nettoyage du titre et du résumé de leurs entités XML, se fait à l'aide d'une procédure dont l'appel se trouve dans le sous-programme de parcours d'arborescence. Ce nettoyage se fait à l'aide d'une succession d'expressions régulières.


L'appel de la procédure de nettoyage


Aperçu des fichiers XML obtenus, chaque fichier correspondant à une rubrique.

Tous les scripts suivants sont commentés dans leur fichier source.

Script utilisant seulement des expréssions régulières

Pour télécharger le script cliquez ici :

Si vous voulez le visualiser cliquez ici :

Script utilisant XML::RSS

Pour télécharger le script cliquez ici :

Si vous voulez le visualiser cliquez ici :

Script utilisant XML::XPath

Pour télécharger le script cliquez ici :

Si vous voulez le visualiser cliquez ici :

Script utilisant LibXML

Pour télécharger le script cliquez ici :

Si vous voulez le visualiser cliquez ici :

[haut de page]