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 :

[XSL]Récupérer les 5 plus petites valeurs de 10 éléments


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 011
    Points : 1 375
    Points
    1 375
    Par défaut [XSL]Récupérer les 5 plus petites valeurs de 10 éléments
    Bonjour à tous,

    Je voudrais savoir s'il est possible en XSL de récupérer les 5 plus petites valeurs d'une liste d'éléments.

    Considérons la structure suivante:
    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
    <racine>
      <noeud>
    	<sous-noeud attr1="2.0"/>
      </noeud>
      <noeud>
    	<sous-noeud attr1="1.0"/>
      </noeud>
      <noeud>
    	<sous-noeud attr1="4.0"/>
      </noeud>
      <noeud>
    	<sous-noeud attr1="6.0"/>
      </noeud>
      <noeud>
    	<sous-noeud attr1="3.0"/>
      </noeud>
    </racine>
    Comment puis-je faire un test pour connaitre les 3 plus petites valeurs de @attr1 et agir en conséquence lors de la transformation ?

    J'avais pensé à faire un xsl:sort mais je dois mal m'y prendre, de plus je ne dois pas modifier la structure du document. Pour cela je voulais stocker le résultat trié dans un nouvel arbre en mémoire et regarder si @attr1 <= $arbreEnMemoire[3]/@attr1 mais je n'ai pas réussi.

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 011
    Points : 1 375
    Points
    1 375
    Par défaut
    Bon en fait c'est bon j'ai trouve une solution assez astucieuse je compte simplement le nombre d'occurrences qui sont inferieures a la valeur que je teste, avec un code du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:variable name="me">
      <xsl:value-of select="@attr1"/>
    </xsl:variable>
    <xsl:if test="count(//sous-noeud[@attr1 &lt; $me]) &lt; 3">
      <!-- Cette valeur est l'une des 3 plus petites -->
    </xsl:if>
    Ahah je suis tellement fort tiens je m'aime

    Merci quand meme

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/09/2012, 11h44
  2. [MySQL] Retourner les plus petites valeurs d'une table
    Par Albafika dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 27/10/2008, 18h38
  3. Récupérer les N plus grandes valeurs
    Par lloyd_r dans le forum MATLAB
    Réponses: 6
    Dernier message: 01/09/2008, 15h16
  4. Réponses: 4
    Dernier message: 12/04/2008, 12h42
  5. [Debutante] trouver les 5 plus grandes valeurs
    Par Sarrus dans le forum Langage SQL
    Réponses: 11
    Dernier message: 25/07/2005, 15h39

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