Bonjour,
j'ai la feuille xsl suivante (merci GrandFather):
qui ajoute de la hiérarchie à l'xml plat suivant :
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 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <xsl:apply-templates></xsl:apply-templates> </xsl:template> <xsl:template match="nom"> <xsl:variable name="position-dernier" select="count(following-sibling::*[not(self::nom)]) - count(following-sibling::nom/following-sibling::*[not(self::nom)])"/> <personne> <xsl:copy-of select="."/> <xsl:copy-of select="following-sibling::*[position() <= $position-dernier]"/> </personne> </xsl:template> <xsl:template match="prenom"/> <xsl:template match="age"/> <xsl:template match="e-mail"/> <xsl:template match="article"/> </xsl:stylesheet>
pour produire en sortie :
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 <data> <nom>dupont</nom> <prenom>martin</prenom> <age>25</age> <e-mail>blabla@yahoo.bla</e-mail> <article>chaussure</article> <article>table</article> <article>livres</article> <article>ordinateur</article> <nom>john</nom> <prenom>john</prenom> <age>10</age> <e-mail>blabla@gmail.bla</e-mail> <article>vélo</article> <article>chaussure</article> <nom>peter</nom> <prenom>pete</prenom> <age>55</age> <e-mail>blabla@hotmail.bla</e-mail> <article>verre</article> </data>
ma question est : comment serait-il possible de regrouper les éléments <article> dans un élément plus englobant <achats> avant de les copier? J'ai essayé de mettre un
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 <data> <personne> <nom>dupont</nom> <prenom>martin</prenom> <age>25</age> <e-mail>blabla@yahoo.bla</e-mail> <article>chaussure</article> <article>table</article> <article>livres</article> <article>ordinateur</article> </personne> <personne> <nom>john</nom> <prenom>john</prenom> <age>10</age> <e-mail>blabla@gmail.bla</e-mail> <article>vélo</article> <article>chaussure</article> </personne> <personne> <nom>peter</nom> <prenom>pete</prenom> <age>55</age> <e-mail>blabla@hotmail.bla</e-mail> <article>verre</article> </personne> </data>dans le
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:apply-templates>
mais ça ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <copy-of>
D'avance merci à celui qui résoudra ce problème épineux parce que moi je ne sais plus quoi faire.
Partager