vendredi 6 juillet 2007

Exploitation d'un flux XML avec OpenLaszlo

OpenLaszlo est un superbe outil qui vous permet de générer des applications AJAX en Flash ou DHTML à partir d'une grammaire particulière assez simple d'accès basée sur XML (chaque code est encadré par "canvas" "/canvas" et est enregisté dans un fichier ".lzx". Les fichiers .lzx exécutés par le server (Tomcat/OpenLaszlo) sont visualisable par n'importe quel navigateur web compatible Flash ou DHTML.
RSS et ATOM sont des technologies que j'utilise tous les jours via Netvibes, mais que je ne connais pas en détail. Je vais donc esseyer de réaliser un mini-lecteur de flux RSS (très rudimentaire dans un premier temps) à l'aide de OpnLsz. Première étape préciser à OpnLsz quel fichier on utilise (ici le flux atom du blog de Freddy Mini, qui travaille chez... Netvibes !! ;) ) :

"
dataset name="flux" src="emini_blog.xml"/ " la balise " dataset .../ "

permet d'assoncier un "name" et un chemin "src". Ici le ficher est en local sur le serveur mais on peut imaginer mettre une adresse http://www.etc.. Ensuite on organise les données de façon sommaire : En précisant OpnLszo va directement sérialiser l'affichage des items. Inutile de faire de boucle "for". On récupère ici les informations portant sur :
- la date de publication,
- le titre,
- le contenu du post.


Le résultat obtenu mérite d'être remis en forme. On peut commencer par mettre l'ensemble dans un fenêtre à l'aide des balise " window " et " /window ". L'imbrication des " view " permttra d'afficher le résultat proprement en évitant les problèmes de superposition des éléments (les éléments déclarés les derniers sont au dessus et réciproquement).



<code>
<canvas>
<dataset name="flux"
request="true" type="http"
src="http://feeds.feedburner.com/emini_blog"/>
<view id="main">
<window id="content" width="950" height="450" x="10" y="10" resizable="true" title="Flux">
<view>
<simplelayout axis="y"/>
<view datapath="flux:/feed/entry">
<simplelayout axis="y"/>
<text datapath="published/text()" width="900"/>
<text datapath="title/text()" fontstyle="bold" fontsize="15" width="900"/>
<text datapath="content/text()" multiline="true" width="900" fontsize="12"/>
<text> <br></br> </text>
<text> <br></br> </text>
</view>
</view>
<scrollbar axis="y"/>
</window>
</view>
</canvas>
</code>







Pour lire un flux en ligne, il suffit de modifier le " dataset " : La grammaire XML de OpenLaszlo est assez intutive et elle permet d'avancer assez rapidement même en tatonnant. Le résultat obtenu est biensûr très sommaire (il faudrait au moins ajouter la sauvegardes des flux et la mise automatique et la comptibilité RSS dont la grammaire est différente de RSS) mais c'est une bonne base de départ. Tous les scripts peuvent être testés en ligne ici.

Mise à jour : c'est vraiement galère d'afficher du code dans blogspot. Le code de Laslo a été converti là : http://www.stanford.edu/~bsuter/js/convert.html .

Aucun commentaire: