Bonjour à tous !
J'ai un problème sur une transformation XSL. Pourriez-vous m'aider à terminer ma feuille de style XSL afin d'avoir le résultat attendu çi-dessous, je sèche.
Merci !
XML de départ, les noeuds sont tous au même niveau :
Résultat attendu : les noeuds de type = "Archive" doivent être créées à l'intérieur des noeuds de type = "Home".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <root> <Data type="Home" position="1">Valeur<Data> <Data type="Archive" position="1">Valeur1<Data> <Data type="Archive" position="1">Valeur2<Data> <Data type="Archive" position="1">Valeur3<Data> <Data type="Home" position="2">Valeur<Data> <Data type="Archive" position="2">Valeur1<Data> <Data type="Archive" position="2">Valeur2<Data> <Data type="Archive" position="2">Valeur3<Data> </root>
Début du 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 <home type="Home" position="1"> <archives> <archive>Valeur1</archive> <archive>Valeur2</archive> <archive>Valeur3</archive> </archives> </home > <home type="Home" position="2"> <archives> <archive>Valeur1</archive> <archive>Valeur2</archive> <archive>Valeur3</archive> </archives> </home>
J'ai essayé pas mal de chose avec les template mode et les copy-of mais rien n'y fait, je m'y prends mal !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"> <xsl:output method="xml" indent="yes"/> <xsl:template match="root"> <xsl:apply-templates select="Data"/> </xsl:template> <xsl:template match="Data"> <xsl:if test="@type='Home'"> ... <archives> Que faire ici pour intégrer les noeuds Data de type archive ? </archives> </xsl:if> </xsl:template> </xsl:stylesheet>
Partager