Partage
  • Partager sur Facebook
  • Partager sur Twitter

XML, trier par colonne

<xsl:sort>

    21 août 2006 à 23:18:37

    Bonjour, j'ai une fichier xml ou je stocke des données simplement.
    Voici 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="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>


    Je voudrais savoir comment m'y prendre pour rajouter des balise de tri pour qu'en cliquant sur le nom de la colonne elles se trient par ordre alphabetique.
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      22 août 2006 à 13:43:45

      Slt,

      il faut que tu fasses passer un paramêtre, puis ensuite tu l'utilises dans un <xsl:sort/> :

      Mais sans ton XML je ne pourrais pas t'aider.

      ++
      • Partager sur Facebook
      • Partager sur Twitter
        23 août 2006 à 10:55:53

        Faire passer un parametre...c'est a dire?
        • Partager sur Facebook
        • Partager sur Twitter
          23 août 2006 à 17:48:57

          Et bien avec les langages courants (C++, PHP, etc) tu peux passer des paramêtres à un processeur Xslt avant transformation. Ces paramêtres sont utilisables pendant la transformation grâce à <xsl:param/>.
          Ainsi dans ton cas, il faudrait faire passer la clef du tri par l'url (par exemple : script.php?tri=colonne3) et ensuite faire passer ce paramêtre, avec PHP et XSL. Voici un exemple.

          Après dans ta feuille de style Xslt, tu fais :

          <xsl:sort select="*[name()=$param]"/>

          ++
          • Partager sur Facebook
          • Partager sur Twitter

          XML, trier par colonne

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown