Bonjour à tous,
Je débute en XSLT et je me retrouve confronté à une problématique XSLT sur laquelle je n'ai pas réussi à trouver une solution (après une journée de recherche sur le web).
Mon XML de départ correspond à :
Par le biais d'un traitement XSLT, je dois créer un élément "Echange" par "frefEchange" avec son nom, y compris celui comportant une référence. Du coup, je dois créer un XML qui ressemble à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <FrefProjet> <frefEchange> <name>Test1</name> </frefEchange> <frefEchange reference="../frefEchange"/> </FrefProjet>
Après quelques recherches sur le web, j'arrive à un code qui ressemble à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <Projet> <Echange> <nom>Test1</nom> </Echange> <Echange> <nom>Test1</nom> </Echange> </Projet>
Comme vous l'aurez compris, le résultat n'est pas vraiment bon. Je créé bien un élément "Echange" par élément "frefEchange" dans mon XML source, mais je n'arrive pas à récupérer l'élément "name" de ce dernier.
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 <?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" /> <xsl:template match="/"> <Projet> <xsl:apply-templates /> </Projet> </xsl:template> <xsl:template match="FrefProjet"> <xsl:for-each select="frefEchange"> <Echange> <xsl:choose> <xsl:when test="not(@reference)"> <nom><xsl:value-of select="name"/></nom> </xsl:when> <xsl:otherwise> <xsl:variable name="exchangePath" select="@reference" /> <nom><xsl:value-of select="$exchangePath/name"/></nom> </xsl:otherwise> </xsl:choose> </Echange> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Je n'arrive pas à faire comprendre le fait que je souhaite accéder au PATH contenu dans ma variable "exchangePath".
Pourriez-vous me venir en aide ?
Merci d'avance,
Jérémy
Partager