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:
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>
... ...
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

<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>
Mais après avoir classé par Category, je souhaiterais effectuer un sous-classement par Product, pour avoir un truc du genre:

Category1
Product1
Desc1
Desc2
Product2
Desc3
Category2
Product3
Desc4
...

Si jamais il existe une solution, je serais comblé

Merci d'avance
K.