RSS pour les humains: XSL et votre XML est lisible
Il vous est certainement déjà arrivé de tomber sur des liens mystérieux: en cliquant une petite image labelisée rss vous arrivez sur une page illisible pour le commun des mortels. C’est un flux rss.
A quoi servent-ils? A suivre de l’information rapidement sans devoir charger tout un site.
Normalement, on emploie un aggrégateur de flux pour les parcourir d’un coup d’oeil. Il en existe de nombreux logiciels ou sous forme de site web.
Grâce à mon aggrégateur préféré, je surveille presque quotidiennement une bonne 50taine de sites grâce à leurs rss. Un titre m’article m’intéresse? Hop, je clique et je lis.
Un RSS lisible
Là où le bât blesse, c’est quand un utilisateur non-confirmé clique un lien pointant vers le fichier rss. Il se trouve confronté à une page incompréhesible faite de code. Ce sera une expérience vraiment mauvaise.
Evidemment, il existe une solution: un petit fichier nommé xsl qui mettra en page le fichier xml.
En pratique, il vous faudra créer ce fichier et le lier à votre flux RSS.
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="gatellier.xsl"?>
On a dès lors, une belle scission entre le contenu (fichier xml), le layout (fichier xsl) et pourquoi pas les comportements (fichier js).
Dans le code du fichier XSL
Quand vous ouvrez ce fichier, qui est aussi un format xml, vous pouvez vous rendre compte qu’il contient de l’html plus certains tags xsl
En fait, il prend le fichier xml qu’il va parser et en fonction de ce qui y est, il construira un fichier html qui lui est compréhensible par votre browser et donc lisible par un humain.
La partie la plus intéressante est le code:
<xsl:for-each select="rss/channel/item"> <xsl:value-of select="title"/> </xsl:for-each>
Le template va parcourir le document xml à la recherche de nodes items
qui sont enfants de nodes channel
, eux-même enfants de items
.
En fait, c’est la structure de mon fichier xml que j’ai parcouru en cherchant les éléments qui m’intéressent.
C’est comme ça que FeedBurner crée des pages lisibles à partir de vos flux RSS.
En savoir plus
Evidemment cette technique ne marche pas sur tous les browsers.
- Opera ne supporte pas les XSL
- un bug de rendu de Firefox ne permettra pas d’afficher certains caractères spéciaux correctement. Mais il existe une solution en php pour WordPress
Pour mieux connaître les XSL
Comments
4 commentaires à “RSS pour les humains: XSL et votre XML est lisible”
Laissez un commentaire
En voici un bel exemple :
http://feeds.feedburner.com/lefigaro/laune
Exact Jimmy,
Feedburner est la façon la plus facile de faire rendre son flux rss lisible: il faut juste se rendre sur l’adresse du site et y coller l’url de son flux, remplir un formulaire et c’est fait.
A noter, Firefox 2 beta 1 “skinne” par défaut les fichiers rss, c’est vraiment impressionnant. J’attends impatiemment la sortie officielle de ce logiciel
Aucun problème chez moi avec Opera.
Esperons que firefox utilise une mise en forme uniquement quand aucune information de mise en forme n’est disponible.
oui, ils ont ajouté le support des XSLT dans la version 9 de Opéra
Scripting
* Added support for XSLT 1.0 and the XSLTProcessor constructor.
http://www.opera.com/docs/changelogs/windows/900/