[XSLT 1.0] Interprétation d'un XPATH contenu dans un Attribut
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 à :
Code:
1 2 3 4 5 6
| <FrefProjet>
<frefEchange>
<name>Test1</name>
</frefEchange>
<frefEchange reference="../frefEchange"/>
</FrefProjet> |
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:
1 2 3 4 5 6 7 8
| <Projet>
<Echange>
<nom>Test1</nom>
</Echange>
<Echange>
<nom>Test1</nom>
</Echange>
</Projet> |
Après quelques recherches sur le web, j'arrive à un code qui ressemble à :
Code:
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> |
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.
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