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 :

for-each et sort [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Homme Profil pro
    infographiste
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : infographiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 23
    Points
    23
    Par défaut for-each et sort
    Bonjour à tous,

    Je début en Xsl,et voici mon problème je cherche à faire un trie sur des éléments. j'y suis arrivé mais il triplé les infos, et là, il ne tripe pas les info mais il ne les trie plus.

    Voici mes code merci à vous.

    Pour info : je suis dyslexique et dysorthographie, je fais un max.

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <Products>
        <product>
            <ISBN>9781234567891</ISBN>
            <title>zzzzzzzzzzz</title>
            <date>2015-10-23</date>
             <serial_info>
                <code>VR33</code>
            </serial_info>
        </product>
        <product>
            <ISBN>9782345678912</ISBN>
            <title>Xxxxxxxxxx xxxxx</title>
            <date>2017-10-03</date>
             <serial_info>
                <code>VR32</code>
            </serial_info>
        </product>
        <product>
            <ISBN>9783456789123</ISBN>
            <title>Wwwww</title>
            <date>2016-04-28</date>
            <serial_info>
                <code>VR33</code>
            </serial_info>
        </product>
       <serial>
           <code>VR33</code>
           <title>Eeeee</title>
       </serial>
         <serial>
              <code>VR34</code>
              <title>Ttttttt</title>
         </serial>
    </Products>
    mon code xslt :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
       xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"
       xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/"
       version="1.0">
     
       <xsl:output indent="yes"/>
     
       <xsl:template match="Products">
           <Products >
     
              <xsl:apply-templates select="product"></xsl:apply-templates>
     
           </Products>
        </xsl:template>
     
     
     
     
     
        <xsl:template match="product">
             <product> 
             <xsl:for-each select=".">
                  <xsl:sort select="translate(date,'-','')" order="descending"/>
     
                              <ISBN><xsl:value-of select="ISBN"/></ISBN>
                              <date><xsl:value-of select="substring(date, 0, 5)"/></date>
     
                </xsl:for-each>
             </product>
     
     
            </xsl:template>
    </xsl:stylesheet>
    Merci à vous.

    Philippe

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    tu ne peux pas faire for-each select=".", ça n'a aucun intérêt.

    Tu dois mettre ton xsl:sort dans le apply-templates, comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:apply-templates select="product">
      <xsl:sort select="date" order="descending"/>
    </xsl:apply-templates>
    et le translate() sur date ne sert à rien, ça marche tout aussi bien avec ou sans les tirets.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    infographiste
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : infographiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Merci cela fonction très bien je passe à la suite à très bientôt avec d'autres questions

    Philippe

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

Discussions similaires

  1. [XSLT 1.0] for-each & sort sur plusieurs attributs
    Par Metalman dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 22/05/2017, 18h40
  2. [XSLT] XSLT sort dans un for-each avec select sur un param
    Par tralloc dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 23/11/2012, 09h06
  3. [XSLT] for-each-group et sort
    Par renardbleu dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 05/02/2008, 15h36
  4. [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
  5. [VB6] For Each ... In ...
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2003, 12h56

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