[XSLT] transformation des elements d'un tableau en d'autres elements
Bonjour,
je suis en train de modifier un code xsl qui n'est pas le mien, pour les besoin d'une lib, et je desirerai avoir le moins de changement pour le probleme qui suit (en particulier, pas de changement de design).
Le programme cree a partir d'un fichier de description en xml des fichies en C. Il stocke dans le fichier xsl les types utilises dans le programme, de cette maniere :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<xsl:variable name="core-types-rtf">
<type name="BOOL" />
<type name="BYTE" />
<type name="CARD8" />
<type name="CARD16" />
<type name="CARD32" />
<type name="INT8" />
<type name="INT16" />
<type name="INT32" />
</xsl:variable>
<xsl:variable name="core-types" select="e:node-set($core-types-rtf)" /> |
Ensuite, les types sont utilises ainsi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<xsl:template name="canonical-type-name">
<xsl:param name="type" select="string(@type)" />
<xsl:variable name="is-unqualified" select="not(contains($type, ':'))"/>
<xsl:variable name="namespace" select="substring-before($type, ':')" />
<xsl:variable name="unqualified-type">
<xsl:choose>
<xsl:when test="$is-unqualified">
<xsl:value-of select="$type" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($type, ':')" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="$is-unqualified and $core-types/type[@name=$type]">
<xsl:value-of select="$type" />
</xsl:when>
etc... |
le type est donc stocke a l'avant-derniere ligne
Ce que j'aimerais faire est non pas utiliser $type, mais d'autres noms (qui sont en fait les types definies par la norme C99). J'ai essaye de mettre un champ newname ainsi :
Code:
1 2 3
|
<type name="BOOL" newname="bool8_t" />
etc... |
mais je n'ai pas reussi a l'utiliser correctement.
Quelqu'un aurait-il une idee, soit comment utiliser ce champ newname, soit une autre methode pour echanger les types ci-dessus par les autres types ?
merci
Vincent Torri