par
Hywan » 03 févr. 2008, 22:50
Utiliser des fichiers statiques et faire du XSLT chez le client a aussi ses mauvais côtés :
- XSLT est reconnu comme un moyen de torture d'après la convention de Genève
- la syntaxe est extrêmement verbeuse,
- le fonctionnement est radicalement différent de ce que l'on connait en PHP, JS, etc... Par exemple il n'y a pas de boucles, il faut procéder par récursion. Oh, et il n'y a pas de "else" dans XSLT 1.0. Vous avez bien lu, ils ont implémenté "if", mais pas "else"

- il n'y a pas vraiment d'éditeurs spécialisés (à part quelques vieux trucs hors de prix, à ma connaissance)
Mince, c'est si grave que ça que même Genève a mis son nez là-dedans

.
Pour avoir passer tout mon mois de janvier dans DocBook et ces feuilles XSLT, je peux me permettre de te contre-dire

(si si, j'ose

).
Certes XSLT est une torture. Rien n'est franchement évident, mais il y a pire que XSLT (prologue par exemple ...). Il faut comprendre que tout les traitements sont des fonctions à travers des structurations, ça facilite un peu la vie. On manipule un arbre, pas des données. Les données sont situées dans les branches, et sont manipulables à travers des fonctions. C'est sûr ce point que c'est différent de langage comme PHP. Mais ce n'est pas du tout le même but, on en convient.
En revanche, ton exemple est faux. Il existe des boucles en XSLT. Je te l'accorde, c'est fastidieux. Il faut définir un sous-arbre comme comportant les clés, et tu peux faire une boucle de type
foreach sur un arbre, en testant les clés précédemment définies (en général, les clés sont dans l'arbre parcouru, logique).
Les recommandations W3C préfèrent utiliser le terme
Repetitions plutôt que boucle, et je trouve ça plus juste (
voir le chapitre 8 : Repetitions pour XSLT).
Ensuite, il n'y a pas de
else, mais un
otherwise que l'on utilise dans un
choose, ce qui permet un
switch ou une suite de
elseif. Je t'invite à regarde la source que j'avais faite pour Docbook sur Hoa pour
gérer les glossaires des acronymes et abréviations (voir les lignes 11 à 18 et 82 à 91 par exemple, tu auras des boucles, des si, sinon etc.).
Concernant l'éditeur spécialisé : Vi ne suffit pas

? (je me trompe de sujet pour troller je crois

).
Sinon, concernant vraiment ton sujet, c'est intéressant, mais n'ai pas d'idée. Je continue de lire, ça peut toujours être utile

.
[quote="Hubert Roksor"]Utiliser des fichiers statiques et faire du XSLT chez le client a aussi ses mauvais côtés :
[list][*]XSLT est reconnu comme un moyen de torture d'après la convention de Genève[list][*]la syntaxe est extrêmement verbeuse, [*]le fonctionnement est radicalement différent de ce que l'on connait en PHP, JS, etc... Par exemple il n'y a pas de boucles, il faut procéder par récursion. Oh, et il n'y a pas de "else" dans XSLT 1.0. Vous avez bien lu, ils ont implémenté "if", mais pas "else" :lol:
[*]il n'y a pas vraiment d'éditeurs spécialisés (à part quelques vieux trucs hors de prix, à ma connaissance)[/list][/list][/quote]
Mince, c'est si grave que ça que même Genève a mis son nez là-dedans ;-).
Pour avoir passer tout mon mois de janvier dans DocBook et ces feuilles XSLT, je peux me permettre de te contre-dire :) (si si, j'ose ;-)).
Certes XSLT est une torture. Rien n'est franchement évident, mais il y a pire que XSLT (prologue par exemple ...). Il faut comprendre que tout les traitements sont des fonctions à travers des structurations, ça facilite un peu la vie. On manipule un arbre, pas des données. Les données sont situées dans les branches, et sont manipulables à travers des fonctions. C'est sûr ce point que c'est différent de langage comme PHP. Mais ce n'est pas du tout le même but, on en convient.
En revanche, ton exemple est faux. Il existe des boucles en XSLT. Je te l'accorde, c'est fastidieux. Il faut définir un sous-arbre comme comportant les clés, et tu peux faire une boucle de type [i]foreach[/i] sur un arbre, en testant les clés précédemment définies (en général, les clés sont dans l'arbre parcouru, logique).
Les recommandations W3C préfèrent utiliser le terme [i]Repetitions[/i] plutôt que boucle, et je trouve ça plus juste ([url=http://www.w3.org/TR/xslt.html#for-each]voir le chapitre 8 : Repetitions pour XSLT[/url]).
Ensuite, il n'y a pas de [i]else[/i], mais un [i]otherwise[/i] que l'on utilise dans un [i]choose[/i], ce qui permet un [i]switch[/i] ou une suite de [i]elseif[/i]. Je t'invite à regarde la source que j'avais faite pour Docbook sur Hoa pour [url=http://hoa-project.net/Manual/Source/DocBook/my-xsl-stylesheets/xhtml/glossary.xsl]gérer les glossaires des acronymes et abréviations[/url] (voir les lignes 11 à 18 et 82 à 91 par exemple, tu auras des boucles, des si, sinon etc.).
Concernant l'éditeur spécialisé : Vi ne suffit pas :P ? (je me trompe de sujet pour troller je crois ;-)).
Sinon, concernant vraiment ton sujet, c'est intéressant, mais n'ai pas d'idée. Je continue de lire, ça peut toujours être utile :).