Hello

J'ai un petit souci surement tres simple à résoudre, mais je ne comprends pas ce qui cloche dans mon code.

J'ai un fichier XML qui ressemble à ca:
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
23
24
25
 
<Version>
  <CL>
    <User>mrX</User>
    <Comment>
      <Category>compilfix</Category>
      <Products>
        <Family Name="Undefined">
          <Product>Undefined</Product>
        </Family>
      </Products>
    </Comment>
  </CL>
  <CL
    <User>mrX</User>
    <Comment>
      <Category>improvement</Category>
      <Products>
        <Family Name="Undefined">
          <Product>Undefined</Product>
        </Family>
      </Products>
    </Comment>
  </CL>
</Version>
Et un extrait de mon XSL associé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
  <xsl:for-each select="document(.)//Version/CL/Comment/Products /Family[generate-id(.)=generate-id(key('fam', @Name))]">
    <xsl:variable name="currentFam" select="@Name"/>
    <xsl:if test="(../..)/Category='improvement''">
 
...
...
Je fais donc un test (xsl:if) car je ne veux prendre en compte que les champs Category qui ont comme valeur "improvement". Or, avec le xml ci-dessus, le test échoue tout le temps car (../..)/Category retourne toujours 'compilfix'. Comme si le for-each s'arretait à la premiere valeur trouvée.
Est ce que quelqu'un voit où j'aurais pu me tromper ?

Merci d'avance
K.