recuperer toutes les valeurs d'un meme type de noeud - XML/XSL - Programmation
Marsh Posté le 21-03-2007 à 15:54:28
tu charges ton xml dans un dataset .NET et tu fais un regroupement, avant de faire un export en XML puis une transformation xslt du résultat
Marsh Posté le 21-03-2007 à 16:09:48
c'est comme ça que tu me remercies de faire un up à ton topic tout pourri ?
Marsh Posté le 21-03-2007 à 16:12:57
pour info, ce que tu cherches à faire n'est pas conforme à la norme de toute façon.
un xslt, c'est fait pour transformer un fichier xml. un fichier xml, par définition, son schéma est connu, donc "ni leurs noms" n'a pas lieu d'être.
si tu dois transformer des fichiers xml dont la dtd peut varier, alors t'as qu'à faire varier de la même façon ton xslt
une fois de plus, structure et informations sont confondus, ça change pas des topics sgbd. finalement, je trouve mes repères ici.
Marsh Posté le 21-03-2007 à 16:15:35
MagicBuzz a écrit : |
c'est nouveau ça ...
Marsh Posté le 21-03-2007 à 16:24:12
tu peux faire un SORT en XSLT pour trier déja, de mémoire ça doit donner un truc du genre (mais ça fait un moment que j'ai pas touché a XSLT)
Code :
|
Marsh Posté le 22-03-2007 à 09:02:18
MagicBuzz a écrit : pour info, ce que tu cherches à faire n'est pas conforme à la norme de toute façon. |
En effet, ca ne change pas des topics sgdb, tu parles toujours de ce que tu ne connais pas...
Marsh Posté le 22-03-2007 à 09:02:54
nemohp a écrit : tu peux faire un SORT en XSLT pour trier déja, de mémoire ça doit donner un truc du genre (mais ça fait un moment que j'ai pas touché a XSLT)
|
Ca oui, je sais.
Le probleme, c'est qu'apres, je ne vois aucun moyen de savoir combien de noeud de chaque type j'ai. En xslt2, j'ai le for-each-group qui me permet de faire un traitement super simplement, mais en 1.1, je ne vois pas du tout.
Marsh Posté le 22-03-2007 à 14:06:38
<xsl:value-of select="count(NomDeTonNoeud)" /> ça marche pas en xslt 1?
Marsh Posté le 22-03-2007 à 14:30:29
si, ca marche, mais uniquement quand je connais "NomDeTonNoeud"
Marsh Posté le 22-03-2007 à 15:14:50
Il me semble que si, tu peux le connaitre le nom du noeud via name()
Je pense qu'en combinant dans la boucle le tri sur name(), le count(name()) et un test when pour afficher qu'une fois le count() et les valeurs (le test étant du style "nom noeud courant == nom noeud précédent" ), ça devrait le faire, non?
Marsh Posté le 19-03-2007 à 15:01:12
Bonjour bonsoir,
J'ai un xml qui a la gueule suivante:
<parent>
<typeA>val 1</typeA>
<typeC>val 2</typeC>
<typeA>val 3</typeA>
<typeB>val 4</typeB>
<typeA>val 5</typeA>
<typeC>val 6</typeC>
</parent>
Et au final, je devrais arriver a un truc qui aurrait la forme suivante:
typeA(3): val 1, val 3, val 5
typeB(1): val 4
typeC(2): val 2, val 6
le tout en xslt 1 (en 2, ce serait trop facile ) et en ne sachant pas a l'avance combien de type de noeud fils je pourrait avoir, ni leurs noms.
Quelqu'un aurait une idee? parce que la, je seche un peu...