IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XML/XSL] for-each imbriqués


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 163
    Points : 98
    Points
    98
    Par défaut [XML/XSL] for-each imbriqués
    Bonjour à tous

    Je requiert votre aide pour me sortir d'un soucis avec un fichier xml et xsl
    Voilà mes compétences sont un peu limitées en la matière. Je voudrais mettre en forme le fichier xml avec le xsl (à moins qu'il y ait une autre solution).
    J'ai suivi les tutos du site mais là je ne sais vraiment plus comment faire pour m'en sortir. Il faut que j'affiche un tableau recapitulatif des employés pour chaque statut dans chaque période. J'en profite pour vous demandez quel outil est le plus adapté pour çà. J'ai fouillé dans le sondage du forum et j'ai installé une démo de xmlspy mais çà m'a l'air compliqué pour une première approche xml/xsl. Qu'en pensez vous ?

    le fichier xml


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?xml version="1.0" standalone="yes" ?>
    <?xml-stylesheet type="text/xsl" href="./MesDonnees.xsl" ?>
    <Periodes>
    	<Periode id="1">
    		<DateDeb>20/10/2005</DateDeb>
    		<DateFin>20/10/2005</DateFin>
    		<NumeroSem>42</NumeroSem>
    		<Statuts>		
    			<Statut value="Maladie">
    				<Employes>
    					<Employe>
    						<nom>SALLE Marcel</nom>
    						<nbPanier>0</nbPanier>
    						<nbDeplacement>0</nbDeplacement>
    						<nbHeures>8</nbHeures>
    					</Employe>
    				</Employes>
    			</Statut>
    			<Statut value="Présent">
    				<Employes>
    					<Employe>
    						<nom>AURIOUX Rémi</nom>
    						<nbPanier>1</nbPanier>
    						<nbDeplacement>1</nbDeplacement>
    						<nbHeures>4</nbHeures>
    					</Employe>
    					<Employe>
    						<nom>BERGE Jean-Jacques</nom>
    						<nbPanier>1</nbPanier>
    						<nbDeplacement>1</nbDeplacement>
    						<nbHeures>8</nbHeures>
    					</Employe>
    					<Employe>
    						<nom>THEBAULT Jean-Paul</nom>
    						<nbPanier>1</nbPanier>
    						<nbDeplacement>0</nbDeplacement>
    						<nbHeures>8</nbHeures>
    					</Employe>
    				</Employes>
    			</Statut>
    		</Statuts>
    	</Periode>
    	<Periode id="2">
    		<DateDeb>30/10/2005</DateDeb>
    		<DateFin>30/10/2005</DateFin>
    		<NumeroSem>43</NumeroSem>
    		<Statuts>
    			<Statut value="Maladie">
    				<Employes>
    					<Employe>
    						<nom>toto</nom>
    						<nbPanier>0</nbPanier>
    						<nbDeplacement>0</nbDeplacement>
    						<nbHeures>0</nbHeures>
    					</Employe>
    				</Employes>
    			</Statut>
    		</Statuts>
    	</Periode>
    </Periodes>
    le fichier xsl que j'essaie de mettre au point.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:template match="/">
    <html>
    <body>
     
    <xsl:for-each select="Periodes/Periode">
     
    	<br>
    	Du <xsl:value-of select="DateDeb"/> 
            au <xsl:value-of select="DateFin"/> 
            Semaine : <xsl:value-of select="NumeroSem"/>
    	</br>
     
    	<xsl:for-each select="Periodes/Periode/Statuts/Statut" >
     
    		<br><xsl:value-of select="Statut"/></br> 
     
    		<table width="600" border="0" cellpadding="2">
    		<tr bgcolor="#ffcc66">
    			<td><div align="right">Employe</div></td>
    			<td><div align="center">Nb. Panier</div></td>
    			<td><div align="center">Nb. Deplacement</div></td>
    			<td><div align="center">Nb. Heures</div></td>
    		</tr>
     
    		<xsl:for-each select="//Periode/Statuts/Statut[nom=current()]/Employes/Employe">
     
    			<tr bgcolor="#ffffcc">
    				<td><div align="right"><xsl:value-of select="nom"/></div></td>
    				<td><div align="center"><xsl:value-of select="nbPanier"/></div></td>
    				<td><div align="center"><xsl:value-of select="nbDeplacement"/></div></td>
    				<td><div align="center"><xsl:value-of select="nbHeures"/></div></td>
    			</tr>
     
    		</xsl:for-each>
     
    		</table>
     
    	</xsl:for-each>	
     
    </xsl:for-each>
     
    </body>	
    </html>	
    </xsl:template>	
    </xsl:stylesheet>

    Merci d'avance

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    essaie ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:template match="/">
    <html>
    <body>
     
    <xsl:for-each select="Periodes/Periode">
     
       <br>
       Du <xsl:value-of select="DateDeb"/>
            au <xsl:value-of select="DateFin"/>
            Semaine : <xsl:value-of select="NumeroSem"/>
       </br>
     
       <xsl:for-each select="Periodes/Periode/Statuts/Statut" >
     
          <br><xsl:value-of select="@value"/></br>
     
          <table width="600" border="0" cellpadding="2">
          <tr bgcolor="#ffcc66">
             <td><div align="right">Employe</div></td>
             <td><div align="center">Nb. Panier</div></td>
             <td><div align="center">Nb. Deplacement</div></td>
             <td><div align="center">Nb. Heures</div></td>
          </tr>
     
          <xsl:for-each select="Employes/Employe">
     
             <tr bgcolor="#ffffcc">
                <td><div align="right"><xsl:value-of select="nom"/></div></td>
                <td><div align="center"><xsl:value-of select="nbPanier"/></div></td>
                <td><div align="center"><xsl:value-of select="nbDeplacement"/></div></td>
                <td><div align="center"><xsl:value-of select="nbHeures"/></div></td>
             </tr>
     
          </xsl:for-each>
     
          </table>
     
       </xsl:for-each>   
     
    </xsl:for-each>
     
    </body>   
    </html>   
    </xsl:template>   
    </xsl:stylesheet>

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 163
    Points : 98
    Points
    98
    Par défaut
    ok merci ca marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. XSL pour PDF( xsl:for-each imbriqués)
    Par Gaspard22 dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 24/04/2014, 13h23
  2. Comment transformer une balise xml dans une requete xsl:for-each
    Par Max1000p dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 07/06/2012, 09h46
  3. xsl:for-each avec un parametre pour select
    Par arnog dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 26/08/2008, 13h09
  4. [XSLT] Croiser plusieurs xsl:for-each avec deux documents XML
    Par strat0 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/06/2007, 16h10
  5. [XSL] for-each + sort, et comparaison current previous value
    Par johan_barbier dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/11/2005, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo