Bonjour,
merci beaucoup !
Cependant, je ne parviens pas à placer le
<xsl:for-each select="entite">
<xsl:sort select="@*|node()"/>
comme il faut... faut il que je modifie le XML pour avoir un niveau de
plus "cout" ?
et étrangement, mon tableau se répète deux fois...
voici le xsl :
<xsl:template match="/">
<html>
<head>
<title>titre
</title>
</head>
<body>
<p>Page n</p>
<table width=" 100%" border="1" cellspacing="1" cellpadding="1" >
<tr>
<td><div align="center">Entité numéro </div> </td>
<td><div align="center">Cout</div> </td>
<td><div align="center">Cout</div> </td>
<td><div align="center">Cout</div> </td>
</tr>
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="entite">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="entite/*">
<td>
<xsl:apply-templates/>
</td>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Merci de l'aide !
Jean-Christophe Kermagoret a écrit :
> Bonjour, une façon de s'y prendre consiste à avoir une approche
> déclarative, c'est à dire de dire ce que vous voulez :
>
> Si on traduit votre xml en html, cela correspond à dire que pour chaque
> entité, vous aurez une ligne et pour chaque élément dans entité, vous
> aurez une colonne,
>
> ce qui se traduit en XSLT par :
>
> <xsl:template match="/">
> <html>
> <head/>
> <body>
> <xsl:apply-templates/>
> </body>
> </tr>
> </xsl:template>
>
> <xsl:template match="entite">
> <tr>
> <xsl:apply-templates/>
> </tr>
> </xsl:template>
>
> <xsl:template match="entite/*">
> <td>
> <xsl:apply-templates/>
> </td>
> </xsl:template>
>
> <xsl:template match="@*|node()">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()"/>
> <xsl:apply-templates/>
> </xsl:copy>
> </xsl:templtate>
>
> Votre tableau doit bien sûr avoir exactement la même structure.
> Si vous voulez trier d'abord vos données sur le coût par exemple, vous
> devez faire un for-each avec une instruction sort dedans.
>
> Pour vos couleurs, vous pouvez :
> * soit faire un test sur le nom du noeud
> * soit intercepter explicitement chaque noeud
> * soit pour chaque entite/*, donner une classe css avec une ligne du style :
> <td class="{local-name()}"/>
> ce qui vous donnera automatiquement class="cout_1", class="cout_2" selon
> le nom du noeud où vous êtes.
>
> JC
>
> Gillot a écrit :
>
>>Bonjour,
>>
>>j'ai un petit soucis technique : j'ai des données XML qui se présentent
>>comme ça :
>>
>><entite>
>><numero_entite>1</numero_entite>
>><cout_1>10</cout_1>
>><cout_2>20</cout_2>
>><cout_3>50</cout_3>
>></entite>
>>
>>etc... pour n entités, et je ne parvient pas à obtenir le xslt
>>permettant de présenter ces données dans un html par colonnes, les couts
>>étant classés du plus grand (en gauche de la colonne) au plus petit, la
>>couleur des cellules permettant de les différencier entre eux (rouge
>>pour le cout_1, blanc pour le cout_2 et vert pour le cout_3 )
>>
>>comment devrais-je m'y prendre ?
>>
>>merci pour votre aide
___________________________________________________________________________
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez cette version sur http://fr.messenger.yahoo.com
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Fri Jul 15 17:06:27 2005