Bonjour,

J'ai un fichier XML qui se présente sous la forme suivante :
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
 
<Root>
    <Vagues>
        <Vague Id=1 ...>
            <kpi ca=100 qte=5/>
        </Vague>
        <Vague Id=2 ...>
            <kpi ca=100 qte=5/>
        </Vague>
        ...
        <Vague Id=n ...>
            <kpi ca=100 qte=5/>
        </Vague>
    </Vagues>
</Root>
Sur base de ce fichier XML, je veux créer un template XSL qui me permet d'afficher X tableaux :
1. Vision de toutes les vagues
2. Vague 1
3. Vague 2
...
N. Vague N

Pour ça, j'ai créé un template de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<xsl:template name="DetailVague">
    <xsl:param name="pVagueId" select="0"/>
 
    <xsl:variable name="vCA" select="sum(/Root/Vagues/Vague[@Id=$pVagueId]/kpi/@ca)"/>
</xsl:template>
Ce que je voudrais c'est passer dans pVagueId :
- Soit "Toutes" pour avoir le CA de toutes mes vagues, quel que soit l'id
En gros, avoir [@Id=@*]
- Soit une vague pour avoir le CA de celle-ci uniquement, c'est-à-dire un id donné
En gros, avoir [@Id=1]

Mon problème, c'est que je ne parviens pas à variabiliser le @*... J'ai écrit l'instruction ci-dessous, mais ça ne fonctionne pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
	<xsl:variable name="vSelectionVague">
		<xsl:choose>
			<xsl:when test="$pVagueId='Toutes'">
				@*
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="$pVagueId"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:variable>
 
	<xsl:variable name="vCA" select="sum(/Root/Vagues/Vague[@Id=$vSelectionVague]/kpi/@ca)"/>
J'ai également essayé de la mofier avec des "{ }" ou des "[ ]" mais rien n'y fait...

Est-ce que qqn aurait une idée pour me débloquer svp ?

Vous remerciant par avance pour votre aide.