Teddy Payet
CTO Freelance

Une boucle DATA pour avoir les dernières versions de SPIP

Avec SPIP 3, nous avons nativement la boucle DATA issue du plugin Itérateur réalisé par Fil. Cette boucle nous permet de parser presque tout ce que l’on veut ! C’est purement magique !

Un xml

Voici un exemple d’utilisation de la boucle DATA à partir d’un xml obtenu de la page http://files.spip.org/spip/archives/

<B_archives>
<ul>
    <BOUCLE_archives(DATA) {source xml,
    "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D'http%3A%2F%2Ffiles.spip.org%2Fspip%2Farchives%2F'%20and%20xpath%3D'%2Fhtml%2Fbody%2Fdiv%2Fdiv%5B3%5D%2Fdiv%2Fdiv%2Fdiv%2Ful%5B2%5D%2Fli%2Fdiv%5B1%5D%2Fa'&format=xml"}>
     <BOUCLE_nom(DATA) {source table, #VALEUR{0}} {cle==a}>
           <li><a href="#VALEUR{href}">[(#VALEUR{0})]</a> </li>
    </BOUCLE_nom>
</BOUCLE_archives>
</ul>
</B_archives>

Explications

 l’url spécifiée est fournis par la console de YQL : http://developer.yahoo.com/yql/cons... (Cliquez sur "Test" pour voir le rendu)
Le résultat de cette première boucle DATA est un tableau qui contient uniquement les liens vers les archives de SPIP. Il nous suffit de le passer en critère à une seconde boucle DATA.
 grâce au critère {cle==a}, on récupère uniquement les clés contenant ’a’ (équivalent à la balise html <a>).
 #VALEUR{href} : récupération de l’attribut href de la balise <a>.
 #VALEUR{0} : récupération du contenu de la balise <a>.

Et voilà. Nous avons sur la page toutes nos versions officielles de SPIP.

J’étofferai un peu plus tard cet article avec une boucle DATA avec une source YQL.

 
Langage et développement
XML
Frameworks
SPIP
Catégorie
Boucle DATA, Notes de développement, Astuce