D'abord format de
base des weblogues pour la syndication de leur contenu, le format
RSS a maintenant été adopté par les grands médias
pour la même raison (New-York Times, BBC, Yahoo!...) : l'utilisateur
ne risque jamais de recevoir de spam, au contraire d'un abonné
à une newsletter, et il peut facilement s'abonner/se
désabonner d'un flux précis(pour autant qu'il dispose
d'un aggrégateur).
Mais justement, si l'utilisateur lambda d'un site clique sur le lien
du fichier RSS d'un site, il sera le plus souvent bien en mal de comprendre
ce qu'il doit faire de ces informations : les navigateurs modernes,
IE6 et Mozilla en tête, affiche directement les fichiers comme
le contenu XML qu'ils sont, et bien malin celui qui comprendra ce
qu'il faut faire ensuite...
La solution est
simple : faire appel à XSL pour ajouter du "style"
aux balises XML, voire mieux : afficher un message en lieu et place
du flux RSS. C'est ce que nous allons faire ici.
Démonstration
Partons du principe que votre site offre un flux RSS
2.0. Il aura la forme suivante s'il était affiché
directement à votre visiteur.
<?xml version="1.0"
encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>Nouvelles de mon
site</title>
<link>http://www.monsite.com/</link>
<description>Mon Site -
ma vie, mon oeuvre</description>
<language>fr</language>
<item>
<title>Le
dernier article en date...</title>
<description>
Encore
plus de choses passionnantes.
</description>
<guid>
http://www.monsite.com/2003/09/26/encore_un_scoop
</guid>
</item>
<item>
<title>L'avant-dernier
article en date...</title>
<description>
Plein
de choses passionnantes.
</description>
<guid>
http://www.monsite.com/2003/09/25/un_scoop
</guid>
</item>
</channel>
</rss>
L'astuce consiste
donc à créer le feuille de style qui viendra manipuler
ce fichier directement dans le navigateur. Commençons par
indiquer l'existence de cette feuille.
<?xml version="1.0"
encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="rss.xsl"
?>
<rss version="2.0">
<channel>
[le reste du fichier reste inchangé]
Voyons maintenant la forme que prendra notre feuille XSL si
l'on veut simplement remplacer le contenu RSS
par un texte lisible pour le visiteur.
<?xml
version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet
version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"/>
<xsl:template
match="/developpeur/">
<html
xml:lang="fr">
<head>
<title>MonSite.com</title>
<meta
http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
Ce fichier RSS n'est pas lisible
dans un navigateur.<br /> Pour pouvoir vous abonner au flux
RSS de notre site, et ainsi être tenu au courant de nos nouveautés
dès qu'elles sont publiées, vous devez télécharger un aggregateur,
tel que <a href="http://www.bradsoft.com/feeddemon/beta/" title="FeedDemon">FeedDemon</a>.
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Le déroulement
est ici assez simple :
- L'élément <xsl:output>
permet de définir le type du document résultant. En
précisant que nous voulons utiliser la méthode de
sortie "html", nous indiquons au processeur XSL qu'il
doit adapter son format au type de fichier.
- <xsl:template> sert à
gérer les modèles. Ici, avec match="/",
nous spécifions que le modèle qui va suivre va simplement
remplacer notre document XML.
- Suit le fichier HTML que nous voulons envoyer au visiteur, au
complet (balises HEAD et TITLE
incluses).
- Enfin, on ferme template et stylesheet.
Nous verrons ensuite comment faire
croire au visiteur qu'il visite une véritable page HTML, l'affichage et
les liens étant gérés par XSL.
|