Ce n'est qu'un extrait car ce fichier va correspondre aux emplois du temps de plusieurs formations dans une semaine. Le document est ici structuré en séances et je voudrais faire une structure comme ceci :
<emploi du temps> <jour lib="mardi 09/03/04"> <heure h="8h00"> <infos de la séance/> </heure> </jour> <emploi du temps>
C'est à dire séparer par jour et par heure dans chaque jour. J'ai réussi à faire une feuille XSL permettant de séparer par jour, mais je n'arrive pas à faire à la volée la séparation par heure... Notez que dans le fichier XML créé, le balise de chaque jour n'apparait qu'une fois mais peut regrouper plusieurs séances (cf variable 'jour-unique'), je voudrais faire la même chose pour les heures.
Marsh Posté le 12-03-2004 à 14:37:31
Salut ! Je voudrais réorganiser l'arborescence du fichier xml que voici :
<?xml version="1.0" encoding="ISO-8859-1"?>
<semaine num="III-1">
<seance formation="premiere_annee" nb_gpes="5">
<matiere>Maths</matiere>
<jour>mardi 9/03/04</jour>
<h_deb>8h00</h_deb>
<h_fin>9h30</h_fin>
<prof>JPR/MC</prof>
<salle>P2-16</salle>
<num_gpe>1</num_gpe>
<num_gpe>9</num_gpe>
<num_gpe>10</num_gpe>
<num_gpe>11</num_gpe>
<num_gpe>12</num_gpe>
</seance>
<seance formation="premiere_annee" nb_gpes="2">
<matiere>Maths</matiere>
<jour>lundi 8/03/04</jour>
<h_deb>9h30</h_deb>
<h_fin>11h00</h_fin>
<prof>JPR/MC</prof>
<salle>P2-16</salle>
<num_gpe>5</num_gpe>
<num_gpe>6</num_gpe>
</seance>
</semaine>
Ce n'est qu'un extrait car ce fichier va correspondre aux emplois du temps de plusieurs formations dans une semaine.
Le document est ici structuré en séances et je voudrais faire une structure comme ceci :
<emploi du temps>
<jour lib="mardi 09/03/04">
<heure h="8h00">
<infos de la séance/>
</heure>
</jour>
<emploi du temps>
C'est à dire séparer par jour et par heure dans chaque jour.
J'ai réussi à faire une feuille XSL permettant de séparer par jour, mais je n'arrive pas à faire à la volée la séparation par heure...
Notez que dans le fichier XML créé, le balise de chaque jour n'apparait qu'une fois mais peut regrouper plusieurs séances (cf variable 'jour-unique'), je voudrais faire la même chose pour les heures.
Voila le fichier XSL :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="cle-jour" match="seance" use="jour"/>
<xsl:variable name="formation">premiere_annee</xsl:variable>
<xsl:variable name="jours" select="semaine/seance[@formation=$formation]/jour"/>
<xsl:variable name="jour-unique" select="$jours[not(text()=preceding::jour)]"/>
<xsl:template match="/">
<edt formation="{$formation}">
<xsl:for-each select="$jour-unique">
<xsl:sort select="text()" order="ascending"/>
<xsl:variable name="libelle" select="text()"/>
<xsl:copy>
<xsl:attribute name="lib">
<xsl:value-of select="$libelle"/>
</xsl:attribute>
<xsl:for-each select="key('cle-jour',$libelle)">
<xsl:copy>
<xsl:copy-of select="@nb_gpes"/>
<xsl:copy-of select="*[not(self::jour)][not(self::date)]"/>
</xsl:copy>
</xsl:for-each>
</xsl:copy>
</xsl:for-each>
</edt>
</xsl:template>
</xsl:stylesheet>
Si vous avez eu le courage de tout lire et que vous avez une petite idée, je vous remercie d'avance pour vos réponses
allezsalut