J'ai un xml tel que celui-ci:
et le but est d'afficher le contenu sous la forme de tableau à 2 colonnes : code et valeur. Là ou ça se complique, c'est que les codes c1250, c1250-autres, et c1250-avantages (s'ils existent) doivent être additionnés et affichés qu'une seule fois.
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 <main> <partie1> <c1001>checked</c1001> <c1005>12</c1005> <c1100>45678.84</c1100> .... <c1250> <valeur>45678.19</valeur> <valeur>1235.74</valeur> </c1250> <c1250-autres>12457.74</c1250-autres> <c1250-avantages>1247.73</c1250-avantages> <c1280>417.91</c1280> ... </partie1> <partie2> ... </partie2> </main>
Par conséquent, j'avais pensé utiliser un template:
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <xsl:template match="(c1250|c1250-autres|c1250-avantages)[1]"> <!-- Faire la somme et l'afficher --> <xsl:value-of select="sum(valeur|parent::part1/c1250-pecule|parent::part1/c1250-avantages|parent::part1/c1250-autres|parent::part1/c1250-reprise)" /> </xsl:template>
De sorte que dès qu'un des éléments c1250, c1250-autres, ou c1250-avantages est trouvé, le premier template est utilisé et par contre, les occurences suivantes sont gérées par le 2ème template qui dès lors ignore les éléments.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:template match="c1250|c1250-autres|c1250-avantages"> <!-- ne rien faire --> </xsl:template>
Lorsque je le teste dans XMLSpy, ça fonctionne. Par contre, en Visual Studio, j'ai l'erreur "Unexpected token '(' in the expression".
Quelqu'un pourrait-il me dire ce qui ne va pas et/ou comment résoudre mon problème?
Merci
Partager