XML-RSS

Real Simply Syndication
Le RSS est une méthode de syndication de contenu sous format xml, cela permet au webmaster de proposer à l'internaute, les derniers articles de façon résumé, celui-ci peut ensuite utiliser des logiciels de gestion de flux (agrégateur), firefox intègre lui même un agrégateur.
Il existe aussi des sites qui fournissent un annuaire de flux.

Stats Mediafed.com de décembre 2007:
7% des internautes utilisent les flux
48% des abonnés ont souscrit à plus de 20 flux
33% d'entre eux lisent ces flux plus de 4 fois par jour
30% utilient les flux comme seul source d'information

Parser un flus RSS n'est pas une opération facile car il existe 9 versions différentes de ce format!

Versions
1999=>Libby/Netscape
RDF:Ressource Description Framework
0.90 Obsolète, naissance du RSS:RDF Site Sumary
1999=>Libby/Netscape 0.91 Obsolète basé sur DTD, suppréssion du RDF
2000=>Dave Winer/Userland 0.91 Suppression du DTD
2000=>groupe RSS-DEV
1.0 Viable, retour du RDF
2000=>Dave Winer/Userland 0.92 RSS:Really Simple Syndication
2001=>Dave Winer/Userland 0.93 Obsolète
2002=>Dave Winer/Userland 0.94 Obsolète
2002=>Dave Winer/Userland 2.0 Viable, le plus utilisé
2003=>Dave Winer/Harward 2.01


simplexml
$xml = simplexml_load_file($rssLink); charge un lien
$xml = SimpleXMLElement($txt); charge un string
$xml = simplexml_load_string($txt); idem
Méthodes
$xml->laBalise
contenu de balise
$xml->children() liste des enfants du noeud
$xml->attributes()
les attributs de la balise
$xml->xpath('//unMot') xpath est embarqué dans simplexml

balises flux <channel>
Obligatoires
$xml['version'] version rss
$xml->channel->title titre du flux
$xml->channel->link lien de la page de flux
$xml->channel->description description
$xml->channel->item article, au minimum un
Facultatives
$xml->channel->pubDate date de publication
$xml->channel->lastBuildDate date dernière publication
$xml->channel->image->url
image
$xml->channel->language
langue
$xml->channel->category catégorie
$xml->channel->ttl
prochain refraîchissement

balises articles <item>
foreach($xml->channel->item as $item){...}
Obligatoires
$item->title
titre
$item->description
description
Facultatives
$item->link lien
$item->pubDate $item->pubDate
$item->category catégorie
$item->comments commentaires