Bonjour.
Je suis amené à faire des transformations sur un noeud particulier dans mon arbre XML. Je dois modifier l'ordre de certains éléments du noeud mais conserver les autres. Voici un exemple: le noeud
Code :
- <Homme>
- <Corps>
- <Jambe>Jambe</Jambe>
- <Bassin>Bassin</Bassin>
- <Tronc>Tronc</Tronc>
- <Tete>Tete</Tete>
- </Corps>
- <Ame />
- <Homme>
|
doit se transformer en :
Code :
- <Homme>
- <Corps>
- <Tete>Tete</Tete>
- <Tronc>Tronc</Tronc>
- <Bassin>Bassin</Bassin>
- <Jambe>Jambe</Jambe>
- </Corps>
- <Ame />
- <Homme>
|
Voici le script XSL que j'ai écrit
Code :
- <xsl:template match="/">
- <xsl:element name = "Homme" >
- <xsl:copy>
- <xsl:apply-templates />
- </xsl:copy>
- </xsl:element>
- </xsl:template>
- <xsl:template match="//Corps">
- <xsl:element name="Corps">
- <xsl:element name="Jambe">
- <xsl:value-of select="./Jambe"/>
- </xsl:element>
- <xsl:element name="Bassin">
- <xsl:value-of select="./Bassin"/>
- </xsl:element>
- <xsl:element name="Tronc">
- <xsl:value-of select="./Tronc"/>
- </xsl:element>
- <xsl:element name="Tete">
- <xsl:value-of select="./Tete"/>
- </xsl:element>
- </xsl:element>
- </xsl:template>
|
L'ordre des éléments du noeud <Homme> est bien changé mais le noeud <Ame> est écrasé. Y'a-t-il une option à spécifier dans le apply-templates pour qu'il ne touche pas aux noeuds n'étant pas la cible d'un template?
Merci d'avance.
Message édité par Morbho le 03-07-2006 à 16:55:30