Compteurs dans des boucles
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
Code:
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> |
et mon vilain code auquel je voudrais rajouter un comptuer est
Code:
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