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][PHP] Trier par colonne.


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut [XSLT][PHP] Trier par colonne.
    Bonjour, j'ai un fichier XML ou je classe des données avec un hierarchie simple
    La balise racine :
    Qui contient des balises toutes de la même sorte.
    Ces balise contiennent une serie de balise ne contenant que du texte.
    De sorte que je trie ces données dans un tableau (triée via XSL) dont la premiere ligne et le titre de chaque colonne.

    Je voudrais qu'en cliquant sur le titre de la colonne le tableau soit classé dans l'ordre alphabetique de cette colonne.
    Mais je voudrais savoir si il y a un autre moyen que de faire un fichie XML et XSL par colonne, quitte a procéder a un systême d'include en php ou que sais-je.

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    grâce à <xsl:sort> tu peux choisir par quoi tu tris, tu peux tout à fait choisir n'importe quelle balise... http://www.w3.org/TR/xslt#sorting
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut
    Puis changer la valeur de la balise sort a l'aide de javascript?

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    non, si tu veux le faire en JavaScript, tu changes de domaine, dans ce cas, tu es après la génération via XSLT, et il te faudra alors refaire le tri et le remaniement du tableau avec JavaScript via DOM...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut
    Pourrais-je avoir plus de renseignement?

  6. #6
    Membre actif
    Avatar de Fildz
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Points : 272
    Points
    272
    Par défaut
    Normalement pour ce genre de chose il suffit de passer un parametre au fichier XSLT, j'ai essayer et j'ai malheureusement pas réussi ! Car apparement les parametres passés à un fichier xslt sont considéré comme une chaine de caractere (string) alors qu'il faudrait pourvoir dire au fichier XSLT qu'il s'agit d'un ensemble de "noeuds", car c'est bien sur un ensemble de noeuds que l'on fait un trie

  7. #7
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    oui, mais tu peux toujours faire et à ce moment le problème n'existe plus

    @Extra-Nitro : pour ça, va voir la section JavaScript, on ne pourra pas te renseigner désolé...
    tu devrais trouver quelque chose dans les sources ou les tutos (ou les archives du forum JS) puisque c'est un problème relativement courrant...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  8. #8
    Membre actif
    Avatar de Fildz
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Points : 272
    Points
    272
    Par défaut
    Il faut absolument que je teste t'as solution Swoög, j'avais passé pas mal de temps à essayer d'en trouver une

    [EDIT] Ca marche très bien, merci Swoög

  9. #9
    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 : 47
    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
    Pour le faire en javascript il faut deporter la transformation xslt coté client.
    Si tu ne le souhaite pas tu peux neanmoins rappellez la meme page php avec un paramètre different et le passer à ta transformation xslt voir ici
    http://www.developpez.net/forums/sho...93&postcount=3

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut
    Mais je ne trouve pas comment utiliser la balise sort dans mon script, je vous donne le code xsl.
    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
     
    <?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="html"/>
    	<xsl:template match="/">
    		<html>
    			<head><title>Liste des divinitées et autres dans la mythologie grecque.</title></head>
    			<body>
    				<table border="1" cellspacing="0" cellpadding="3">
    					<tr>
    						<th onclick="alert('bonjour');">Nom</th>
    						<th>Type</th>
    						<th>Domaine</th>
    						<th>Signification</th>
    						<th>Pere</th>
    						<th>Mere</th>
    						<th>Etoile</th>
    					</tr>
    					<xsl:apply-templates/>
    				</table>
    			</body>
    		</html>
    	</xsl:template>
    <!--	<xsl:template match="*">-->
    		<xsl:apply-templates />
    <!--	</xsl:template>-->
    	<xsl:template match="personne">
    		<tr>
    			<td>
    				<xsl:value-of select="nom"/>
    			</td>
    			<td>
    				<xsl:choose>
    					<xsl:when test="type = 'Type'">
    						<b><xsl:value-of select="type"/></b>
    					</xsl:when>
    					<xsl:otherwise>
    						<xsl:value-of select="type"/>
    					</xsl:otherwise>
    				</xsl:choose>
    			</td>
    			<td>
    				<xsl:value-of select="domaine"/>
    			</td>
    			<td><em>
    				<xsl:value-of select="signification"/>
    			</em></td>
    			<td>
    				<xsl:value-of select="pere"/>
    			</td>
    			<td>
    				<xsl:value-of select="mere"/>
    			</td>
    			<td>
    				<xsl:value-of select="etoile"/>
    			</td>
    		</tr>
    	</xsl:template>
    </xsl:stylesheet>
    Pour ce qui est de javascript j'ai fait un test qui semble marcher.

Discussions similaires

  1. [TDBGrid] Trier par colonne.
    Par ARDILLER dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/07/2010, 19h29
  2. trier une liste par colonnes
    Par Sniper37 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 26/10/2007, 10h19
  3. [Prototype] Trier un tableau à deux dimensions par colonnes
    Par G.D.V.L. dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 12/06/2007, 12h20
  4. Réponses: 3
    Dernier message: 13/12/2006, 09h19
  5. Trier une colonne par date
    Par foobar42 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/07/2006, 17h46

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