XSL : <xsl:element> !!! (poussons le vice !) - XML/XSL - Programmation
Marsh Posté le 08-06-2004 à 15:06:17
Cette fois c'est <xsl:attribute> qu'il faut que tu utilises
http://www.laltruiste.com/document [...] ibute.html
(je ne fais pas de pub pour ce site c'est juste le premier qui m'est venu à l'esprit)
Marsh Posté le 08-06-2004 à 15:18:35
Tu es formidable, ca marche !
Allé, voici la feuille en cours (pas encore finie) :
Code :
|
Marsh Posté le 08-06-2004 à 16:16:48
Je ne sais pas si j'ai bien compris ce que tu voulais faire mais j'aurais plutôt fait ça (j'ai viré les namespace rs et z) :
Code :
|
Ca me semble plus dans l'esprit du XSL.
Marsh Posté le 08-06-2004 à 18:37:14
Exact guiz, le for-each est destiné à un traitement hors context, la beauté et la force d'XSLT c'est justement de jouer avec de petits templates ad hoc.
Je vois beaucoup de code ( sur HFR aussi) avec en gros un template match="/" et puis on traverse le document a coups de for-each... même si on arrive à un résultat on perd tout le côté data driven de la solution...
Le for-each oui mais seulement en dernier recours dirais-je...
Marsh Posté le 09-06-2004 à 10:22:04
Chuis d'accord, Avander. On évolue avec le temps
Mon premier XSLT, je faisais pleins de for-each, et je ne savais pêcher mes données qu'une seule fois. (Très embetant), et après avoir un peu mieux compris le xml/xslt, j'ai pu utiliser des templates. Et encore là, je n'avais pas encore tout compris, et je faisais des trucs assez spécial. Maintenant, que je capte encore mieux, je fais des trucs assez propre.
On évolue, et le XML évolue.. Rendez-vous dans 10 ans quand les normes XForm, XML Query, etc. seront vraiment finalisées...
Marsh Posté le 09-06-2004 à 10:32:53
Par contre je me pose une question :
les "apply-templates" sont une sorte d'appel récursif, ce qui est désastreux au niveau perf et utilisation mémoire, donc, sans parler de tout traiter avec des for-each bien sûr, ne serait-il pas utile d'utiliser des for-each lorsque l'on a besoin de rapidité d'exécution ?
Marsh Posté le 09-06-2004 à 11:10:16
Guiz, je me suis souvent posé la question et je n'ai pas la réponse, il faudrait faire de tests pour voir si des for-each ne sont pas plus rapides.
Cependant, même si les for-each sont plus lisibles pour un programmeur normal, l'esprit XSL est bien basé sur les templates et donc on peut se dire que d'une part bien écrit, un code à base de templates est plus lisibles par les spécialistes XSL et que d'autre part on peut espérer que les Transformeurs sont optimisés pour l'utilisation des templates.
Reste que c'est quand même une manière de voir les choses assez déroutante pour un programmeur normal. A chaque fois que je fais du XSL, j'ai l'impression de mettre de coté mon cerveau de programmeur pour réveiller celui capable de comprendre XSL tellement c'est différent. Peut-être un jour parviendrai-je à les faire fonctionner ensemble
Marsh Posté le 09-06-2004 à 11:39:31
Guiz, dans les deux cas il faut de toute façon créer l'arbre xml de ton document en mémoire et le tout traverser donc la différence doit être infime, la performance est toujours au rendez-vous pcq. tout se passe en mémoire justement! La solution templates offre énormément de souplesse et permet de découper un gros problème en petites solutions élégantes
Mara's Dad, moi aussi j'étais complètement dérouté au début, je n'avais jamais rien vu de pareil, c'était vraiment un autre monde. C'est justement cette différence qui m'a motivé à creuser et très vite j'ai trouvé des applications sympa dans la gestion de contenu par exemple...
Bonne continuation!!
Marsh Posté le 08-06-2004 à 14:31:13
Re,
Je cherche cette fois ci à ajouter des élements à une balise que j'ai créé dynamiquement,
Voici mon code XSL :
Il me genere correctement mon xml :
Je voudrais savoir par quelle maniere je pourrais rajouter des arguments à mes balises l'histoire que ca donne :
Est ce possible ?
Je recupererais mes arguments depuis z:row.
Thx :]