PB affichage XML a partir d'un XSL
coubi
-
s.spark Messages postés 2528 Statut Contributeur -
s.spark Messages postés 2528 Statut Contributeur -
PB Affichage XML grace à une feuille de style XSL
Voila j'ai un tableau et je voudrais que mon tableau se mette à la forme de mes donnée.
J'ai un cours qui dure 1h et donc qui prenne 2 cellules de mon tableau.
...
<td>8h00</td>
<xsl:for-each select="edt/cours"><xsl:if test="when/jour = 'lundi'"><xsl:choose><xsl:when test="when/heure_debut = '08h00'"><xsl:variable name="dur" select="when/duree"/></xsl:when></xsl:choose></xsl:if></xsl:for-each>
<td rowspan="{$dur}">...</td>
merci
Voila j'ai un tableau et je voudrais que mon tableau se mette à la forme de mes donnée.
J'ai un cours qui dure 1h et donc qui prenne 2 cellules de mon tableau.
...
<td>8h00</td>
<xsl:for-each select="edt/cours"><xsl:if test="when/jour = 'lundi'"><xsl:choose><xsl:when test="when/heure_debut = '08h00'"><xsl:variable name="dur" select="when/duree"/></xsl:when></xsl:choose></xsl:if></xsl:for-each>
<td rowspan="{$dur}">...</td>
merci
Configuration: Windows XP Firefox 2.0.0.4
7 réponses
-
C'est bon j'ai trouvé la solution, en fait le truc c'est qu'il fallait que je mette tout mon code contenu dans le <td> dans ma boucle <xsl:for-each> juste apres ma variable.
<td>8h00</td> <xsl:for-each select="edt/cours"> <xsl:if test="jour = 'lundi'"> <xsl:choose> <xsl:when test="heure_debut = '08h00'"> <xsl:variable name="heurefin"><xsl:value-of select="heure_fin"/></xsl:variable> <xsl:variable name="fin" select="substring($heurefin,1,2)"/> <xsl:variable name="int" select="number($fin)"/> <xsl:variable name="dur" select="number((($int)-08)*2)"/> <td rowspan="{$dur}"> <table> <tr> <td id="cours"> <xsl:value-of select="type_cours"/> - <xsl:value-of select="matiere"/> </td> </tr> <tr> <td id="qui"> <xsl:value-of select="enseignants"/> </td> </tr> <tr> <td id="ou"> <xsl:value-of select="lieu"/> </td> </tr> </table> </td> </xsl:when> <xsl:otherwise><td></td></xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each>
merci quand meme !!!! -
Salut,
Peut tu nous donner le fichier xml et le fichier xls ? -
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="./style.xsl" type="text/xsl"?>
<!DOCTYPE edt SYSTEM 'groupes.dtd'>
<edt>
<cours>
<when>
<periode_debut>25/01/2007</periode_debut>
<periode_fin>22/03/2007</periode_fin>
<jour>lundi</jour>
<heure_debut>08h00</heure_debut>
<heure_fin>10h00</heure_fin>
<duree>2</duree>
</when>
<where>
<lieu>D001-003,I224(X)</lieu>
</where>
<what>
<matiere>Gestion</matiere>
<type_cours>TP</type_cours>
</what>
<who>
<participants>311</participants>
<enseignants>CARNOHAN Elisabeth</enseignants>
</who>
<others>
<description></description>
</others>
</cours>
<cours>
<when>
<periode_debut>25/01/2007</periode_debut>
<periode_fin>22/03/2007</periode_fin>
<jour>lundi</jour>
<heure_debut>14h00</heure_debut>
<heure_fin>15h00</heure_fin>
<duree>2</duree>
</when>
<where>
<lieu>D001-003,I224(X)</lieu>
</where>
<what>
<matiere>JAVA</matiere>
<type_cours>TP</type_cours>
</what>
<who>
<participants>311</participants>
<enseignants>FOURNIER JP</enseignants>
</who>
<others>
<description></description>
</others>
</cours>
</edt>
---------------------------------------------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2004/xpath-functions"
xmlns:xdt="http://www.w3.org/2004/07/xpath-datatypes">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Agenda</title>
<style type="text/css">
td{text-align:center;}
#table_cours{background:#FF9966; font-family:Verdana, Arial, Helvetica, sans-serif; font:bold;}
#cours{font-family:Arial, Helvetica, sans-serif; font-size:16px; font:large; color:#000099}
#qui{font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#999999}
#ou{font-family:Georgia, "Times New Roman", Times, serif; font-size:10px; font:oblique;}
</style>
</head>
<body>
<div align="center">
<h1>Agenda du groupe <xsl:value-of select="edt/cours/who/participants"/></h1>
</div>
<div align="center">
<table id="table_cours" border="2">
<tr>
<td></td>
<td><h1>Lundi</h1></td>
<td><h1>Mardi</h1></td>
<td><h1>Mercredi</h1></td>
<td><h1>Jeudi</h1></td>
<td><h1>Vendredi</h1></td>
<td><h1>Samedi</h1></td>
<td><h1>Dimanche</h1></td>
</tr>
<tr>
<td>8h00</td>
<xsl:for-each select="edt/cours">
<xsl:if test="when/jour = 'lundi'">
<xsl:choose>
<xsl:when test="when/heure_debut = '08h00'">
<xsl:variable name="dur" select="when/duree"/>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:for-each>
<td>
<xsl:for-each select="edt/cours">
<xsl:if test="when/jour = 'lundi'">
<xsl:choose>
<xsl:when test="when/heure_debut = '08h00'">
<table>
<tr>
<td id="cours"><xsl:value-of select="what/type_cours"/> - <xsl:value-of select="what/matiere"/></td>
</tr>
<tr>
<td id="qui"><xsl:value-of select="who/enseignants"/></td>
</tr>
<tr>
<td id="ou"><xsl:value-of select="where/lieu"/></td>
</tr>
</table>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:for-each>
</td>
<!-- pareil mais pour tous les autres jours de la semaine -->
<!--
<td><xsl:for-each select="edt/cours"><xsl:if test="when/jour = 'mardi'"><xsl:choose><xsl:when test="when/heure_debut = '08h00'"><table><tr><td id="cours"><xsl:value-of select="what/type_cours"/> - <xsl:value-of select="what/matiere"/></td></tr><tr><td id="qui"><xsl:value-of select="who/enseignants"/></td></tr><tr><td id="ou"><xsl:value-of select="where/lieu"/></td></tr></table></xsl:when></xsl:choose></xsl:if></xsl:for-each></td>
<td><xsl:for-each select="edt/cours"><xsl:if test="when/jour = 'mercredi'"><xsl:choose><xsl:when test="when/heure_debut = '08h00'"><table><tr><td id="cours"><xsl:value-of select="what/type_cours"/> - <xsl:value-of select="what/matiere"/></td></tr><tr><td id="qui"><xsl:value-of select="who/enseignants"/></td></tr><tr><td id="ou"><xsl:value-of select="where/lieu"/></td></tr></table></xsl:when></xsl:choose></xsl:if></xsl:for-each></td>
<td><xsl:for-each select="edt/cours"><xsl:if test="when/jour = 'jeudi'"><xsl:choose><xsl:when test="when/heure_debut = '08h00'"><table><tr><td id="cours"><xsl:value-of select="what/type_cours"/> - <xsl:value-of select="what/matiere"/></td></tr><tr><td id="qui"><xsl:value-of select="who/enseignants"/></td></tr><tr><td id="ou"><xsl:value-of select="where/lieu"/></td></tr></table></xsl:when></xsl:choose></xsl:if></xsl:for-each></td>
<td><xsl:for-each
select="edt/cours"><xsl:if test="when/jour = 'vendredi'"><xsl:choose><xsl:when test="when/heure_debut = '08h00'"><table><tr><td id="cours"><xsl:value-of select="what/type_cours"/> - <xsl:value-of select="what/matiere"/></td></tr><tr><td id="qui"><xsl:value-of select="who/enseignants"/></td></tr><tr><td id="ou"><xsl:value-of select="where/lieu"/></td></tr></table></xsl:when></xsl:choose></xsl:if></xsl:for-each></td>
<td><xsl:for-each select="edt/cours"><xsl:if test="when/jour = 'samedi'"><xsl:choose><xsl:when test="when/heure_debut = '08h00'"><table><tr><td id="cours"><xsl:value-of select="what/type_cours"/> - <xsl:value-of select="what/matiere"/></td></tr><tr><td id="qui"><xsl:value-of select="who/enseignants"/></td></tr><tr><td id="ou"><xsl:value-of select="where/lieu"/></td></tr></table></xsl:when></xsl:choose></xsl:if></xsl:for-each></td>
<td><xsl:for-each select="edt/cours"><xsl:if test="when/jour = 'dimanche'"><xsl:choose><xsl:when test="when/heure_debut = '08h00'"><table><tr><td id="cours"><xsl:value-of select="what/type_cours"/> - <xsl:value-of select="what/matiere"/></td></tr><tr><td id="qui"><xsl:value-of select="who/enseignants"/></td></tr><tr><td id="ou"><xsl:value-of select="where/lieu"/></td></tr></table></xsl:when></xsl:choose></xsl:if></xsl:for-each></td>
-->
</tr>
</table>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
------------------------------------------------
Voila désolé pour le code, je ne l'ai pas indenté correctement, mais je pense que la premiere ligne est visible.
Merci de votre aide -
désolé j'ai oublié que pour continuer mon developpement, que j'avais retirais la partie embetante qui est :
...
<td>8h00</td>
<xsl:for-each select="edt/cours">
<xsl:if test="when/jour = 'lundi'">
<xsl:choose>
<xsl:when test="when/heure_debut = '08h00'">
<xsl:variable name="dur" select="when/duree"/>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:for-each>
<td rowspan="{$dur}">
...
Merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Je ne comprend pas bien ce que tu veux, 1 cellules/heure ce n'est pas bien ?
-
Le probleme c'est que c'est pour gérer l'affichage des cours, et il y a des cours qui ne dure pas que 30min, il faut donc que je prenne en compte la durée afin de pouvoir faire voir à l'utilisateur que le cours dure plus que 30min.
-
Content que tu es trouvé, perso le code que tu donne n'affiche plus les cours.
Autre chose, je n'aime pas trop tous ces tableaux imbriqués ... tu pourrais faire mieux !