Bonjour,
Dans le cadre d'un projet d'étude, je travaille actuellement sur une feuille XSL pour transformer un document XML en XHTML.
A l'intérieur de ce document, tous les éléments ou presque dispose d'un attribut id unique. Cet attribut a pour fonction d'une part de faciliter la manipulation des documents - XML et XHTML - par la suite et d'autre part de permettre de spécifier, pour chacun des éléments pour lesquels cela est possible, un type faisant directement référence à un autre élément du document XML via le mécanisme ID/IDREF - le but est de manipuler et représenter des schémas de type Merise/UML simples -.
Au moment de l'affichage, je souhaiterais récupérer l'attribut 'name' de l'élément pointé par l'attribut 'type'. La solution à laquelle je suis arrivé consiste pour le moment en un template paramétré :
Malheureusement, j'ai eu beau essayer de multiples syntaxes, je n'arrive pas à obtenir l'effet désiré. Et je n'arrive pas à mettre le doigt sur mon erreur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <!-- Appel du template lors du travail sur l'élément typé --> <xsl:call-template name="get-datatype"> <xsl:with-param name="datatype" select="id(@type)"/> </xsl:call-template> <!-- Template --> <xsl:template name="get-datatype"> <xsl:param name="datatype" select="." /> <xsl:value-of select="$datatype/@name" /> </xsl:template>
Si vous souhaitez avoir un exemple de fichier XML, il est disponible à cette adresse - DTD -. La feuille XSL complète est quant à elle visible ici et un exemple du résultat est disponible - sous réserve d'inscription et de connexion - dans la section "Plan de travail" de ce site.
Merci d'avance.
Partager