Bonjour à tous,
Je voudrais savoir s'il y a quelqu'un qui peut m'aider à résoudre un problème d'écriture d'une boucle en XSLT, ma question est la suivante :
Comment je peux écrire une transformation XML vers TXT qui traitera le document XML afin de compter en son sein le nombre d’éléments
<Name> consécutifs qui ont la même valeur et d’afficher pour chacun des premiers de chaque série ce nombre, une tabulation et cette valeur
Le document XMl est le suivant :
et voici ce que j'ai pu écrire en XSLT :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <Document> <Balise> <Name>A</Name> </Balise> <Balise> <Name>A</Name> </Balise> <Balise> <Name>A</Name> </Balise> <Balise> <Name>B</Name> </Balise> <Balise> <Name>B</Name> </Balise> <Njoueur> <Name>B</Name> </Balise> <Balise> <Name>B</Name> </Balise> <Balise> <Name>B<Name> </Balise> <Balise> <Name>B</Name> </Balise> <Balise> <Name>B</Name> </Balise> <Balise> <Name>C</Name> </Balise> <Balise> <Name>C</Name> </Balise> <Balise> <Name>C</sName> </Balise> ... <Balise> <Name>Z</Name> </Balise> ... <Document>
Merci de votre réponse !
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 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="texte"/> <xsl:template match="Balise"> <xsl:choose> <xsl:when test="Name = not(preceding-sibling::Name)"> <xsl:value-of select="Name [position()=1]"/> <xsl:value-of select="count(//Name [ position()='1'])"/> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
Cordialement,
Partager