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 :
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>
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
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>
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
<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>
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 !