Bonjour a tous,
Je rencontre un probleme en XSLT pour organiser un fichier XML de'une façon automatique et dynamique.
Le fichier XML ressemnble et peut pres a ca :
Ce fichier XML peut contenir un nombre aleatoir d'enfant pouvant aller jusqu'a plus de 2000. et il faut que je regroupe tous les <enfant> selon la valeur de <val2>.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <parent> <enfant> <val1></val1> <val1></val1> </enfant> <enfant> <val1></val1> <val2>1</val2> </enfant> <enfant> <val1></val1> <val2>2</val2> </enfant> ...... <enfant> <val1></val1> <val2>1</val2> </enfant> </parent>
Poue le moment, j'arrive a trier ce fichier XML avec une feuille de style XSLT mais je n'affiche qu'une seule parti du fichier (les enfant avec la valeur val2=1 ou 2 mais pas les deux en meme temps ou alors en utilisant une boucle for each, il regroupe bien les données mais le refait quand il retrouve la meme valeur de val2
Detail du fichier XSLT :
Resultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" media-type="text/html; charset=ISO-8859-1"/> <xsl:key name="enfant" match="enfant" use="val2"/> <xsl:template match="parent"> <xsl:for-each select="enfant"> <xsl:sort select="val2"/> <xsl:element name="parent"> <xsl:copy-of select="key('enfant',val2)"/> </xsl:element> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Voila, je peux donner d'autre explication si je suis pas tres clair dans mes explication et remercie par avance tout le monde de leur aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 parent enfant 1 parent enfant 2 enfant 2 parent enfant 2 enfant 2
@++
Partager