
Donc, je me suis lancé dans la fabrication d'un fil RSS 1.0. Coup de chance, on peut effectuer deux fois la boucle <BlogEntry> ce qui est nécessaire pour faire du RDF. On peut facilement tout adapter, mais les dates, encore elles, vont poser problèmes. Comment faire une date valide ? Impossible de mettre un "T" dans la date, donc il faut oublier les heures et les minutes. Mais on peut se contenter de la date YYYY-MM-DD simplement, surtout si on ne fait pas trop trop de MAJ. Dans ce cas, voici le code que j'ai utilisé :
Code : Tout sélectionner
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:cc="http://web.resource.org/cc/"
xmlns="http://purl.org/rss/1.0/">
<channel rdf:about="http://home.etu.unige.ch/~robin0/blog/rss.xml">
<title><$BlogTitle$></title>
<link><$FrontPageLink$></link>
<description><$BlogDescription$></description>
<dc:language><$Lang$>-<$Country$></dc:language>
<dc:date><$CurrentDate format="yyyy-MM-dd"$></dc:date>
<items>
<rdf:Seq><BlogEntry>
<rdf:li rdf:resource="<$EntryPermalink$>" /></BlogEntry>
</rdf:Seq>
</items>
</channel>
<BlogEntry>
<item rdf:about="<$EntryPermalink$>">
<title><EntryTitle><$EntryTitle$></EntryTitle></title>
<content:encoded><![CDATA[<$EntryBody encode_html="0"$>]]></content:encoded>
<link><$EntryPermalink$></link>
<EntryCategories> <dc:subject><$CategoryName$></dc:subject>
</EntryCategories> <dc:date><$EntryDateTime format="yyyy-MM-dd"$></dc:date>
</item>
</BlogEntry>
</rdf:RDF>
À vrai dire j'ai simplifié le code, j'utilise des balises de syndication, <dc:creator> et creative commons, mais il est facile de les rajouter. Voir le tuto d'OpenWeb sur ce sujet qui est très complet et précis.
On a donc un fil RSS 1.0 valide... ah non tiens, il me reste une erreur
Code : Tout sélectionner
line 1, column 0: 'ascii' codec can't decode byte 0xab in position 0: ordinal not in range(128) (maybe a high-bit character?)
