Bonjour,
Je suis nouveau dans l'utilisation du XSLT et j'ai beaucoup de difficulté à faire ce dont j'ai besoin. J'ai un document XML semblable à ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="ISO-8859-1" ?> <?xml-stylesheet href="class1.xsl" type="text/xsl" ?> <aaa> <bbb><nom>Pierre Tremblay</nom> <ddd no="1111" montant="10" /> <ddd no="3333" montant="20" /> <ddd no="2222" montant="30" /> </bbb> <bbb><nom>Roger Lamothe</nom> <ddd no="1111" montant="10" /> <ddd no="2222" montant="20" /> </bbb> </aaa>
Comment puis-je arriver à regrouper tous les attributs "no" indentique et faire la somme des attributs montant?
Par exemple pour me sortir un tableau semblable à ceci:
J'ai essayé ceci, mais on m'affiche toujours le contenu du tag "nom". Qu'est-ce qui n'est pas correct?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 NO COUNT SUM 1111 2 20 2222 2 50 3333 1 20
Merci beaucoup.
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 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="aaa"> <html> <body> <table border="1"> <xsl:apply-templates select="*" /> </table> </body> </html> </xsl:template> <xsl:template match="ddd"> <xsl:if test="generate-id(//ddd[@no=current()/@no]) = generate-id(.)" > <tr> <td><xsl:value-of select="current()/@no" /></td> <td><xsl:value-of select="count(//ddd[@no=current()/@no])" /></td></tr> </xsl:if> </xsl:template> </xsl:stylesheet>
Partager