Bonjour,
Je bloque sur un problème xsl, j'aurai besoin de votre aide. Voici une explication du problème :
je transforme des données via xslt mais j'aimerai pouvoir changer facilement la mise en forme de celle ci notamment les tableaux entourant les blocs de données etc. Je cherche donc à faire une sorte de librairie de forme à appliquer aux données. Cela me permettrai si le programe contient beaucoup de pages, de changer uniquement le template de mise en forme pour modifier l'ensemble du site... je ne voudrais pas non plus poluer le xml de départ avec les données de forme voici donc des données fictives de ce que je désirerai faire :
Voici le code basique sans forme spécial il donnera le résultat :
toto,20 mais je voudrais qu'il soit affiché dans un tableau avec des bords arrondis je drevais donc avoir un template de mise en forme:
Problème comment faire j'ai trouvé une solution grace au call template et un bricolage pour rappeler le template ...
Cela marche (il se peu qu'ici il y ait des fautes dans le code, mais ca me semble vraiment pas top de plus on ne peut pas dans un même template faire un boucles sur les personnes par exemples si il y en a plusieurs etc ... quelqu'un connait il la solution pour faire ca bien ? Je ne vois que la solution de rajouter encore une couche de transformation ce qui me semble très lourd... il doit bien y avoir des gens qui ont eu ce problème quand même ....
Merci d'avance pour vos réponse en épérant avoir été assez clair
Bonne journée
Je bloque sur un problème xsl, j'aurai besoin de votre aide. Voici une explication du problème :
je transforme des données via xslt mais j'aimerai pouvoir changer facilement la mise en forme de celle ci notamment les tableaux entourant les blocs de données etc. Je cherche donc à faire une sorte de librairie de forme à appliquer aux données. Cela me permettrai si le programe contient beaucoup de pages, de changer uniquement le template de mise en forme pour modifier l'ensemble du site... je ne voudrais pas non plus poluer le xml de départ avec les données de forme voici donc des données fictives de ce que je désirerai faire :
le xml :
<personne>
<nom>toto</nom>
<age>20</age>
</personne>
le xsl :
<xsl:apply-templates match="personne">
<xsl:value-of select="nom"/>, <xsl:value-of select="age"/>
</xsl:apply-templates>
Voici le code basique sans forme spécial il donnera le résultat :
toto,20 mais je voudrais qu'il soit affiché dans un tableau avec des bords arrondis je drevais donc avoir un template de mise en forme:
<xsl:template name="tableau-arrondi">
<table>
<tr>
<td>USER</td>
</tr>
<tr>
<td><!-- ici les infos d'un user ex: toto, 20 --></td>
</tr>
</table>
</xsl:template>
Problème comment faire j'ai trouvé une solution grace au call template et un bricolage pour rappeler le template ...
<xsl:template name="tableau-arrondi">
<xsl:param name="content"/>
<table>
<tr>
<td>USER</td>
</tr>
<tr>
<td>
<xsl:apply-template select="$content">
<xsl:with-param name="applied">true</xsl:with-param>
</xsl:apply-template>
</td>
</tr>
</table>
</xsl:template>
<xsl:apply-templates match="personne">
<xsl:param name="applied"/>
<xsl:choose>
<xsl:when test="$applied='true'"><xsl:value-of select="nom"/>, <xsl:value-of select="age"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="tableau-arrondi">
<xsl:with-param name="content" value="."/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:apply-templates>
Cela marche (il se peu qu'ici il y ait des fautes dans le code, mais ca me semble vraiment pas top de plus on ne peut pas dans un même template faire un boucles sur les personnes par exemples si il y en a plusieurs etc ... quelqu'un connait il la solution pour faire ca bien ? Je ne vois que la solution de rajouter encore une couche de transformation ce qui me semble très lourd... il doit bien y avoir des gens qui ont eu ce problème quand même ....
Merci d'avance pour vos réponse en épérant avoir été assez clair
Bonne journée