Peut-on variabiliser l'attribut "@*"
Bonjour,
J'ai un fichier XML qui se présente sous la forme suivante :
Code:
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:
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:
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.