Rechercher : dans
Par :

PB affichage XML a partir d'un XSL

Dernière réponse le 19 jun 2007 à 18:59:17 coubi, le 19 jun 2007 à 15:20:57 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « PB affichage XML a partir d'un XSL » dans :
Mise en page de XML avec XSL Voir Introduction à XSL XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (eXtensible StyleSheet Language) est un langage recommandé par le W3C pour effectuer la représentation des données de documents XML....
Installer FreeNX dans Ubuntu 9.04 VoirFreeNX permet d'accéder à sa machine à distance à travers ssh. L'affichage est particulièrement performant (surtout comparé à X11 sur ssh). C'est l'équivalent des Terminal Services de Windows. FreeNX est un serveur NX gratuit utilisant le protocole...
Rendre le client NX portable VoirNX est formidable pour accéder à distance à sa machine : L'affichage est particulièrement performant et les communications sont sécurisées (avec ssh). Cependant, le client NX doit être installé à chaque fois, ce qui empêche a priori de l'avoir sur...
Télécharger MacOSaiX VoirMacOSaiX est un programme d'édition de mosaïques. L'application permet de créer des mosaiques à partir d'une image quelconque. Les images peuvent être automatiquement affichées à partir : des dossiers internes, des images générées par vos...
Création de liens XML avec XLL VoirIntroduction à XLL XLL est un langage de description des liens hypertextes pour XML. XLL est aussi connu sous le nom de XML:Part2, il s'agit donc de la seconde partie de la norme XML (encore au stade de document de travail du W3C, contrairement...

1

s.spark, le 19 jun 2007 à 15:59:39

Salut,

Peut tu nous donner le fichier xml et le fichier xls ? Ceux qui veulent savoir comment utiliser eMule Paradise contactez moi par email.

Répondre à s.spark

2

coubi, le 19 jun 2007 à 16:07:41

<?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

Répondre à coubi

3

coubi, le 19 jun 2007 à 16:14:19

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

Répondre à coubi

4

s.spark, le 19 jun 2007 à 16:59:27

Je ne comprend pas bien ce que tu veux, 1 cellules/heure ce n'est pas bien ?
Ceux qui veulent savoir comment utiliser eMule Paradise contactez moi par email.

Répondre à s.spark

5

coubi, le 19 jun 2007 à 17:03:31

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.

Répondre à coubi

6

coubi, le 19 jun 2007 à 17:37:31
  • +1

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 !!!!

Répondre à coubi

7

 s.spark, le 19 jun 2007 à 18:59:17

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 !
Ceux qui veulent savoir comment utiliser eMule Paradise contactez moi par email.

Répondre à s.spark
Collection CommentÇaMarche.net