Bon, j'ai un xml en entrée qui contient la description de champs de saisie. Chaque champ est défini par un tag <field type="type de champ"> et contient bien sûr plein d'autres infos dont on se moque ici.
Pour générer la sortie HTML ( enfin XHTML ), j'utilise une feuille de style XSL. Dans cette feuille, j'ai un template pour chaque type de champ, genre :
<xsl:template select="field" mode="type de champ">...
Le problème, c'est de se brancher facilement sur le bon template.
Marsh Posté le 29-09-2004 à 11:16:26
Hello
Bon, j'ai un xml en entrée qui contient la description de champs de saisie.
Chaque champ est défini par un tag <field type="type de champ"> et contient bien sûr plein d'autres infos dont on se moque ici.
Pour générer la sortie HTML ( enfin XHTML ), j'utilise une feuille de style XSL.
Dans cette feuille, j'ai un template pour chaque type de champ, genre :
<xsl:template select="field" mode="type de champ">...
Le problème, c'est de se brancher facilement sur le bon template.
Je pensais faire un truc du genre :
<xsl:template select="field">
<xsl:apply-templates select="." mode="@type">
</xsl:template>
Et bien, c'est pas possible L'attribute mode doit être un CName.
Je fait donc :
<xsl:template select="field">
<xsl:choose>
<xsl:when test="@type='text'"><xsl:apply-templates select="." mode="text" /></xsl:when>
<xsl:when test="@type='num'"><xsl:apply-templates select="." mode="num" /></xsl:when>
<xsl:when test="@type='date'"><xsl:apply-templates select="." mode="date" /></xsl:when>
<xsl:when test="@type='email'"><xsl:apply-templates select="." mode="email" /></xsl:when>
</xsl:choose>
</xsl:template>
C'est pas bien grâve en soit, mais ça me gonfle d'être obligé de faire un truc aussi con
Si vous avez l'astuce qui tue, merci de la partager
---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.