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 :

[XSLT] Classement par ordre alpha [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 212
    Points : 97
    Points
    97
    Par défaut [XSLT] Classement par ordre alpha
    Bonjour,

    Je cherche à faire afficher dans l'ordre alphabetique les noms du tableau XSLT suivant. J'utilise bien la clause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:sort order="ascending"/>
    mais ca ne fonctionne pas alors que pour les enfants ca fonctionne correctement et c'est la meme technique.

    Avez vous une idée de l'origine du problème ?
    Merci du coup de main !

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="html" encoding="ISO-8859-1"/>
    	<xsl:decimal-format name="fr" decimal-separator=',' grouping-separator=' ' />
     
    <xsl:template match="ENFANTS"></xsl:template>
    <xsl:template match="CONJOINTS"></xsl:template>
    <xsl:template match="AFFECTERS"></xsl:template>
    <xsl:template match="PROJETS"></xsl:template>
     
     <xsl:template match="EMPLOYES">
     
    	<html>
    	<meta http-equiv="Content-Type"/>
    		<body>
    			<table border="1">
    				<tr>
    					<th>Nom</th>
    					<th>Prenom</th>
    					<th>No insee</th>
    					<th>Date de naissance</th>
    					<th>Salaire</th>
    					<th>Conjoint</th>
    					<th>Enfants</th>
    					<th>Affectations</th>
    				</tr>
     
    				<xsl:for-each select="EMPLOYE">
    					<xsl:sort order="ascending"/>
    					<tr>
    						<td><xsl:value-of select="NOM"/></td>
    						<td><xsl:value-of select="PRENOM"/></td>
    						<td>
    							<xsl:value-of select="substring(INSEE, 1, 1)"/>
    							<xsl:text disable-output-escaping="yes"> </xsl:text>
    							<xsl:value-of select="substring(INSEE, 2, 2)"/>
    							<xsl:text disable-output-escaping="yes"> </xsl:text>		
    							<xsl:value-of select="substring(INSEE, 3, 2)"/>
    							<xsl:text disable-output-escaping="yes"> </xsl:text>	
    							<xsl:value-of select="substring(INSEE, 6, 2)"/>
    							<xsl:text disable-output-escaping="yes"> </xsl:text>	
    							<xsl:value-of select="substring(INSEE, 8, 3)"/>
    							<xsl:text disable-output-escaping="yes"> </xsl:text>		
    							<xsl:value-of select="substring(INSEE, 11, 3)"/>								
    						</td>
    						<td>												
    						<xsl:variable name="date_norm" select="DATENAISSANCE" />
    						<xsl:variable name="an" select="substring($date_norm, 1, 4)" />
    						<xsl:variable name="mois" select="substring($date_norm, 6, 2)" />
    						<xsl:variable name="jour" select="substring($date_norm, 9, 2)" />
    						<xsl:variable name="date_complete" select="concat($jour, '/', $mois, '/', $an)" />
    						<xsl:value-of select="$date_complete" />
    						</td>
     
    						<td>
    						<xsl:value-of select="format-number(SALAIRE div 6.55957, '# ###,00', 'fr')"/>
    						</td>
     
    						<td>
    						<xsl:choose>
    						<xsl:when test="//CONJOINT[REFEMPLOYECONJOINT = current()/@IDEMPLOYE]">
    						<xsl:value-of select="//CONJOINT[REFEMPLOYECONJOINT = current()/@IDEMPLOYE]/PRENOMCONJOINT"/>
    						<xsl:text> </xsl:text>
    						<xsl:value-of select="//CONJOINT[REFEMPLOYECONJOINT = current()/@IDEMPLOYE]/NOMCONJOINT"/>
    						</xsl:when>
    					    <xsl:otherwise>
    						<xsl:text>Néant</xsl:text>
    					    </xsl:otherwise>
    					    </xsl:choose>
    					    </td>
     
    						<td>
    						<xsl:for-each select="//ENFANTS/ENFANT[REFEMPLOYEENFANT = current()/@IDEMPLOYE]">
    						<xsl:sort order="ascending"/>
    						<xsl:value-of select="PRENOMENFANT"/>
    						<xsl:text> </xsl:text>
    						<xsl:value-of select="NOMENFANT"/>
    						<xsl:text> - </xsl:text>							
    						<xsl:variable name="date_norm" select="DATENAISSANCEENFANT" />
    						<xsl:variable name="an" select="substring($date_norm, 1, 4)" />
    						<xsl:variable name="mois" select="substring($date_norm, 6, 2)" />
    						<xsl:variable name="jour" select="substring($date_norm, 9, 2)" />
    						<xsl:variable name="date_complete" select="concat($jour, '/', $mois, '/', $an)" />
    						<xsl:value-of select="$date_complete" />	
    						<xsl:if test="position() != last()">		
    						<xsl:text>,</xsl:text>
    						</xsl:if>
    						<br/>
    						</xsl:for-each>
    						</td>
     
    						<td>
    							<xsl:variable name="idEmpl" select="@IDEMPLOYE"/>	
    							<xsl:for-each select="../../AFFECTERS/AFFECTER">						
    								<xsl:variable name="refEmpl" select="REFEMPLOYE"/>
    								<xsl:variable name="refProj" select="REFPROJET"/>
    								<xsl:if test="$idEmpl=$refEmpl">
    									<xsl:for-each select="../../PROJETS/PROJET">
    										<xsl:if test="@IDPROJET=$refProj">
    											<xsl:value-of select="NOMPROJET"/>
    										</xsl:if>
    									</xsl:for-each>
    									<xsl:text disable-output-escaping="yes"> - </xsl:text>
    									<xsl:value-of select="TEMPSPOURCENTAGE"/>
    									<xsl:text disable-output-escaping="yes"> %</xsl:text>
    									<br/>
    								</xsl:if>
    							</xsl:for-each>
    						</td>
    				</tr>
    				</xsl:for-each>
    			</table>
    		</body>
    	</html>
    	</xsl:template>
    </xsl:stylesheet>

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    tu peux trier sur un autre element que l'element en lecture, il faut donc tjrs preciser l'attribut select ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:sort select="." order="ascending"/>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 212
    Points : 97
    Points
    97
    Par défaut
    Merci. Ca fonctionne.

    Bonne continuation.


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

Discussions similaires

  1. classement par ordre croissant d'une synthese de serie de nombre
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/11/2007, 00h38
  2. Classement par ordre alphabétique
    Par crovette51101 dans le forum Access
    Réponses: 5
    Dernier message: 20/12/2006, 15h13
  3. [SGBD] Classement par ordre alphabetique
    Par Ceubex dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 02/07/2006, 21h12
  4. Tri par ordre alpha, sensibilité à la casse
    Par linou dans le forum Oracle
    Réponses: 2
    Dernier message: 30/09/2005, 15h45

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