Comme on le sait tous, écrire des expressions python dans des ZPT, c'est mal. J'ai donc voulu aller plus loin afin de pouvoir utiliser les tree xml sans avoir à faire des expressions python.
Avec Zope3, il est possible de rajouter des espaces de nom au expressions TAL (ah, les joies de la component architecture :). J'ai donc implémenté deux espaces de nom supplémentaire me permettant d'accéder aux méthodes find et findall d'un élément xml.
Ma template a donc maintenant cette jolie bouille:
<dl class="lastfm" tal:define="root view/xml">
<dt class="title" tal:content="view/title" />
<dd tal:repeat="track root">
<a tal:attributes=" href track/find:url/text">
<span tal:content="track/find:name/text" />
<span class="small"
tal:content="track/find:artist/text" />
</a>
</dd>
</dl>
Ce qui est tout de même plus agréable à regarder. Ce qui est déconcertant c'est la facilité d'implémentation. Il suffit de quelques lignes de code pour obtenir ce résultat.