Lecture de flux RSS – Episode 1
Comment, en VBA, lire des flux RSS en provenant d’un site Web ? Un exemple d’application pratique de la bibliothèque MSXML et de la classe
ServerXMLHTTP
…
Principe
L’objectif est de lire des flux RSS en provenance d’un site Internet quelconque. Plusieurs formats existent dans ce domaine ; dans notre exemple, on va se limiter au format RSS2, dont vous trouverez les spécifications sur cette page.
Dans ce premier épisode, nous allons juste mettre en place le code pour extraire l’ensemble du flux, sans le décomposer en articles. On verra comment améliorer tout ça ensuite !
Le code
- Démarrez Visual Basic Editor (touches
ALT
+F11
). - Commencez par établir une référence à Microsoft XML, dans le menu Outils / Références (si vous avez plusieurs bibliothèques de même nom, prenez la plus récente).
- Cliquez sur le menu Insertion / Module, puis recopiez dans le module le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
' --- ' LECTURE RSS ' --- Sub LectureFluxRSS() Dim strURL As String Dim http As MSXML2.ServerXMLHTTP Dim doc As MSXML2.DOMDocument ' URL du flux à lire strURL = "http://grenier.self-access.com/?feed/rss2" ' Lecture du flux Set http = New MSXML2.ServerXMLHTTP http.Open "GET", strURL, False http.Send "" ' En cas de réussite, le code renvoyé est 200 If (http.Status = 200) Then Set doc = http.responseXML Debug.Print doc.XML Else MsgBox "Erreur : " & http.Status & " - " & http.statusText, vbExclamation End If ' On libère les objets Set doc = Nothing Set http = Nothing End Sub |
Tester le code
Pour tester ce bout de code :
- Faites apparaître la fenêtre Exécution (
CTRL
+G
), puisque l’affichage des résultats bruts se fera dans cette fenêtre. - Modifiez si nécessaire l’adresse du flux (variable
strURL
), en fournissant une URL de flux au format RSS2 (le code ne fait aucune vérification sur la compatibilité !). L’adresse donnée en exemple est celle du Grenier Access. - Faites en sorte que le curseur soit positionné dans le bloc de code.
- Cliquez sur l’icône Exécuter Sub/UserForm… et attendez le résultat dans la fenêtre Exécution.
Si ça marche, vous devriez voir une bouillie XML dans cette fenêtre ! 🙂