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:
Et un extrait de mon XSL associé:
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>
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.
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''"> ... ...
Est ce que quelqu'un voit où j'aurais pu me tromper ?
Merci d'avance
K.
Partager