Bonjour à tous,
j'utilise XSLT au sein d'IBM Data Explorer... beaucoup de fonctionnalités ne me sont pas permises. (groupby/key etc etc).. j'avais bien un code moins ridicule que celui qui suit, mais inutile de s'enteter parfois.
ma problematique, un fichier XML avec des documents de type differents. Je voudrais prendre les 3 premiers documents uniquement de chaque type.
donc qque chose comme
TYPE A: 3 documents MAX
TYPE B: 3 documents MAX etc..
Comment puis je implementer un compteur dans chacune de mes boucles. svp
mon document a cette forme
et mon vilain code auquel je voudrais rajouter un comptuer est
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 <?xml version="1.0" encoding="UTF-8"?> <vce> <document> <content name="thevalue">item11</content> <content name="myType">typeA</content> </document> <document> <content name="thevalue">item12</content> <content name="myType">typeC</content> </document> <document> <content name="thevalue">item13</content> <content name="myType">typeC</content> </document> <document> <content name="thevalue">item14</content> <content name="myType">typeC</content> </document> <document> <content name="thevalue">item15</content> <content name="myType">typeC</content> <document> <content name="thevalue">item16</content> <content name="myType">typeC</content> </document> </document> <document> <content name="thevalue">item2</content> <content name="myType">typeA</content> </document> <document> <content name="thevalue">item3</content> <content name="myType">typeB</content> </document> <document> <content name="thevalue">item4</content> <content name="myType">typeA</content> </document> <document> <content name="thevalue">item5</content> <content name="myType">typeB</content> </document> <document> <content name="thevalue">item6</content> <content name="myType">typeB</content> </document> <document> <content name="thevalue">item7</content> <content name="myType">typeA</content> </document> </vce>
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
26
27
28
29
30
31
32 <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/vce"> <xsl:text>TYPE A</xsl:text>: <xsl:for-each select="document"> <xsl:if test="( (content[@name='myType']='typeA') and (un compteur de type A) " >position:<xsl:value-of select="position()" />: <xsl:value-of select="content[@name='thevalue']" /> </xsl:if> </xsl:for-each> <xsl:text>TYPE B</xsl:text>: <xsl:for-each select="document"> <xsl:if test="( (content[@name='myType']='typeB') and (un compteur de type B) " > position:<xsl:value-of select="position()" />: <xsl:value-of select="content[@name='thevalue']" /> </xsl:if> </xsl:for-each> <xsl:text>TYPE C</xsl:text>: <xsl:for-each select="document"> <xsl:if test="( (content[@name='myType']='typeC') and (un compteur de type C) " > position:<xsl:value-of select="position()" />: <xsl:value-of select="content[@name='thevalue']" /> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>
merci de votre aide
Partager