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] Tri dynamique [FAQ]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 64
    Points
    64
    Par défaut [XSLT] Tri dynamique
    Bonsoir,

    Je souhaite effectuer un tri dynamique dans mon XSL :

    Le code suivant qui est "logique" pour moi ne fonctionne pas. Le SORT n'aime pas mes variables. Il y a un moyen de contourner ce problème ?

    $tri_critere et $tri_odre sont passé en parametre lorsque je charge le XSL et le XML depuis PHP.

    MERCI A vous.

    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
    <?xml version="1.0" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     
    <xsl:output encoding="ISO-8859-1" /> 
     
    <xsl:template match="liste">
     
    	<xsl:variable name="critere">
    		<xsl:if test="$tri_critere='titre'">id</xsl:if>
    		<xsl:if test="$tri_critere='auteur'">auteur</xsl:if>
    		<xsl:if test="$tri_critere='date'">date</xsl:if>
    	</xsl:variable>
     
    	<xsl:variable name="ordre">
    		<xsl:if test="$tri_ordre='croissant'">ascending</xsl:if>
    		<xsl:if test="$tri_ordre='ascending'">descending</xsl:if>
    	</xsl:variable>
     
    	<xsl:apply-templates select="document(fichier)//ARTICLE/id">
    		<xsl:sort select="critere" order="ascending"/>
    	</xsl:apply-templates>
     
    </xsl:template>
     
    <xsl:template match="id">
    	<p><b><xsl:value-of select="." /></b></p>
    </xsl:template>
     
    </xsl:stylesheet>

  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
    essaye de voir du côté des <xsl:key/>

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    je procèderais comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xsl:template match="liste"> 
      <xsl:apply-templates select="article">
        <xsl:sort select="*[name() = $tri_critere]" order="{$tri_ordre}"/>
      </xsl:apply-templates>
    </xsl:template> 
     
    <xsl:template match="article"> 
       <p><b><xsl:value-of select="id" /></b></p> 
    </xsl:template>
    Sachant que la variable $tri_critere peut prendre une des valeurs 'titre', 'auteur' et 'date', et que $tri_ordre est égal à 'ascending' ou 'descending'.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour vos réponses!

    J'avais contourner le truc, en prenant cas par cas. Je vais optimiser le truc en suivant vos conseils.

Discussions similaires

  1. [XSLT] Tri dynamique IE
    Par Wells dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 24/01/2008, 15h26
  2. tri dynamique avec XSLT
    Par JohnBlatt dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/09/2005, 12h30
  3. [xslt] TRI d'un champs
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 15
    Dernier message: 26/08/2005, 17h01
  4. [XSLT] Tri en fonction d'un paramètre
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 21/04/2005, 10h29
  5. [XSLT] séparation après tri dynamique
    Par MatMeuh dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 26/10/2004, 14h56

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