Bonjour
Je me heurte depuis pas mal de temps à un probleme... sans savoir si ce que je chercher à faire est vraiment faisable (je ne suis pas du tout expert).
Mon XML ressemble à ceci:
Dans mon XSL, j'arrive bien à trier par catégorie. Voici mon code:
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
21
22 <CL Change="24380"> <Comment> <Category Title="compilfix"></Category> <Product Title="prod1"></Product> <Desc> missing file</Desc> </Comment> </CL> <CL Change="24378"> <Comment> <Category Title="bugfix"></Category> <Product Title="prod2"></Product> <Desc>desc new</Desc> </Comment> <Comment> <Category Title="bugfix"></Category> <Product Title="prod1"></Product> <Desc>another desc</Desc> </Comment> </CL> ... ...
Mais après avoir classé par Category, je souhaiterais effectuer un sous-classement par Product, pour avoir un truc du genre:
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 <xsl:key name="cat" match="Category" use="@Title" /> <xsl:template match="Version"> <xsl:for-each select="CL/Comment/Category[generate-id()=generate-id(key('cat',@Title))]"> <xsl:value-of select="@Title"/> <xsl:for-each select="key('cat',@Title)"> <xsl:variable name="currentCat" select="@Title"/> <xsl:value-of select="(..)/Product/@Title"/> <xsl:if test="@Title=$currentCat"> CL: <xsl:value-of select="(../..)/@Change"/> Desc: <xsl:value-of select="(..)/Desc"/> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:template>
Category1
Product1Desc1Desc2Product2Category2Desc3
Product3...Desc4
Si jamais il existe une solution, je serais comblé
Merci d'avance
K.
Partager