🧩 Structure du flux RSS
Le flux suit la spécification RSS 2.0 avec quelques extensions (atom
, slash
).
Il contient un élément racine <rss>
, une section <channel>
(métadonnées du flux), et plusieurs <item>
représentant les articles individuels.
🗂️ 1.
<channel>
— Métadonnées du flux
Élément | Description |
| Nom du flux (nom du site ou du média) |
| Brève description du flux |
| Date de génération du flux |
| Logiciel utilisé pour le générer |
| URL principale du site |
| Lien du flux RSS lui-même (auto-référence) |
📰 2.
<item>
— Un article individuel
Chaque <item>
correspond à une actualité. Voici comment les champs du flux se mappent sur notre modèle applicatif :
Notre modèle | Source RSS | Détails |
id |
| Identifiant unique (souvent l’URL de l’article) |
title |
| Titre de l’article |
description |
| Extrait ou résumé (souvent en HTML dans CDATA) |
content |
| Contenu HTML complet si disponible |
published |
| Date de publication au format RFC822 |
links |
| Lien principal de l’article |
categories |
| Catégories, si |
authors |
| Auteur (absent ici, mais possible selon le flux) |
enclosures |
| Médias associés (ex. image de couverture) |
🖼️ Exemple interprété
Pour ce flux :
<item> <title>Lorem ipsum dolor sit amet</title>
<author>
<name>Author</name>
<uri><http://example.wordpress.com></uri>
</author>
<description><![CDATA[Lorem ipsum dolor sit amet, consectetur adipiscing elit.]]></description>
<pubDate>Tue, 07 Oct 2025 12:53:22 +0200</pubDate>
<link><https://example.com/posts/1></link>
<guid><https://example.com/posts/1></guid>
<category scheme="<https://example.com/>" term="Lorem Ipsum" /> <enclosure type="image/jpeg" length="1" url="<https://example.com/img1.webp>"/>
</item>
On obtiendra après parsing :
{
"id": "<https://example.com/posts/1>",
"title": "Lorem ipsum dolor sit amet",
"description": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
"published": "Tue, 07 Oct 2025 12:53:22 +0200",
"links": [{ "url": "<https://example.com/posts/1>" }],
"categories": [{ "name": "Lorem Ipsum" }],
"authors": [{name: "Author"}],
"enclosures": ["<https://example.com/img1.webp>"]
}
Pour aller plus loin, voir le mapping complet ici :