Lecture de flux RSS – Episode 3

Dans les épisodes précédents, nous avons d’abord lu un flux RSS brut, puis nous avons extrait le titre de ce flux via une expression XPath. Nous allons améliorer l’ensemble en extrayant toutes les informations de l’en-tête du flux. Enfin presque toutes…

La classe VBA LecteurRSS

Pour mieux centraliser l’ensemble du code (et sans doute le rendre plus facile à faire évoluer), on ne va pas garder l’approche « module standard », cette fois. Au contraire, on va créer un module de classe. C’est un peu plus de code au début, pour une meilleure gestion ensuite !

  1. Dans Visual Basic Editor, cliquez sur le menu Insertion / Module de classe.
  2. Enregistrez votre module sous le nom LecteurRSS . C’est de cette manière qu’on crée un nouvel objet LecteurRSS .
  3. Recopiez le code suivant en début de module :

Info
Dans un module de classe, le bloc Property Get  / End Property définit une propriété de la classe, en lecture uniquement. Le bloc Property Let / End Property définit une propriété en écriture. Il peut exister un bloc Property Let et un bloc Property Get portant le même nom (c’est le cas de la propriété URL ci-dessus) : dans ce cas, on définit une propriété en lecture/écriture.
Le premier rôle des propriétés est de donner un accès indirect à des variables privées de la classe, de manière à mieux contrôler cet accès.

Propriétés du flux

L’objectif principal de notre classe est de renvoyer des informations simples sur l’en-tête du flux : son titre, l’adresse du site, la description du flux, le copyright, etc. Toutes ces informations figurent dans le fichier XML, à l’intérieur de la balise channel. Elles peuvent toutes être extraites de la même manière, par un chemin XPath du type : //channel/title , //channel/link , //channel/description , etc.
Ces informations sont des propriétés du flux, elles seront donc traitées comme des propriétés de classe.

Fonctions utiles

Si vous avez suivi le code ci-dessus, vous avez vu que les propriétés du flux font toutes appel à une fonction LireNoeud(), en lui transmettant le chemin XPath à extraire. Il nous reste à ajouter cette fonction dans le module, ainsi que la fonction de lecture HTTP. Ajoutez encore ceci :

Le module de classe complet

Si vous avez manqué un copier/coller, voici le module de classe au complet (à droite, la vue de notre classe dans l’Explorateur d’objets) :

Tester !

Une classe VBA ne peut pas être testée directement, contrairement à des procédures de modules standard. Il va donc falloir créer une procédure, cette fois dans un module standard, qui va mettre en scène notre lecteur RSS. Après tous ces efforts, le code final devrait être plus clair (il consiste à « faire vivre » l’objet LecteurRSS en faisant appel à ses propriétés et ses méthodes).

  1. Cliquez sur le menu Insertion / Module (tout court, pas « de classe »).
  2. Recopiez le code suivant :

Exécutez ce code directement, comme dans les articles précédents. Vous devriez voir quelque chose comme ceci dans la fenêtre Exécution :

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *