Salut à tous,
Je bloque sur une division entre 2 noeuds de même niveau (v1 / v2), je dois placer le résultat dans un noeud également au même niveau (resultat).
Voici mon xml de base simplifié :
mon xsl entier :
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 <yyy> <zzz> <resultat></resultat> <v1>9</v1> <v2>3</v2> </zzz> <zzz> <resultat></resultat> <v1>10</v1> <v2>2</v2> </zzz> </yyy>
Là il me renvoit juste :
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 <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:output method="xml" indent="yes"/> <!-- on reprend la structure de l'xml --> <xsl:template match="@* | node()" priority="1"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <!-- on remplace le noeud résultat par le calcul entre v1 et v2 --> <xsl:template match="zzz" priority="2"> <xsl:variable name="division" select="v1 div v2" /> <xsl:element name="resultat"> <xsl:value-of select="$division"/> </xsl:element> </xsl:template> </xsl:stylesheet>
Au lieu de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="UTF-8"?> <yyy> <resultat>3</resultat> <resultat>5</resultat> </yyy>
Visiblement le template calcul écrase le template de réplication, je ne vois vraiment pas comment juste calculer et en plus pouvoir modifier le champ résultat en xsl :/
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 <yyy> <zzz> <resultat>3</resultat> <v1>9</v1> <v2>3</v2> </zzz> <zzz> <resultat>5</resultat> <v1>10</v1> <v2>2</v2> </zzz> </yyy>
Quelqu'un aurait une idée ?
Par avance merci !
Partager