Encore mieux, faire une table de look-up :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:lookup="Espace de nom perso">
<lookup:table>
<lookup:item cle="TSByte">Word8</lookup:item>
<lookup:item cle="TUWord">UWord16</lookup:item>
<lookup:item cle="UWord16">UWord16</lookup:item>
...
</lookup:table>
...
<xsl:for-each select="PNParamType/TNumber/BasisDataType/*">
<xsl:variable name="nom" select="name()"/>
<xsl:value-of select="document('')//lookup:table/lookup:item[@cle=$nom]"/>
</xsl:for-each>
...
</xsl:stylesheet> |
En utilisant la fonction XPath document() sans paramètre, on récupère la racine de la feuille de style XSLT (et non pas celle du fichier XML !) dans laquelle on aura rajouté la table contenant les noms de variable. Ne pas oublier de créer son propre espace de nom dans la balise xsl:stylesheet