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 :

[XPATH] Afficher seulement l'occurence la plus petite d'un XML


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Par défaut [XPATH] Afficher seulement l'occurence la plus petite d'un XML
    Bonjour,

    J'ai un XML de cette forme :

    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
     
    <produits>
    <produit>
       <name>Produit 1</name>
       <prix>10</prix>
    </produit>
    <produit>
       <name>Produit 2</name>
       <prix>11</prix>
    </produit>
    <produit>
       <name>Produit 3</name>
       <prix>12</prix>
    </produit>
    <produit>
       <name>Produit 4</name>
       <prix>13</prix>
    </produit>
    <produit>
       <name>Produit 5</name>
       <prix>14</prix>
    </produit>
    </produits>
    J'aimerai que seul le produit avec le prix le plus faible s'affiche. Quelle est la stratégie la plus efficace en XSLT ?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    La méthode par une condition XPath (sélectionner l'élément pour lequel il n'y a pas d'élément plus petit) n'est certainement pas efficace si vous avez plusieurs milliers d'éléments.
    Il faudrait plutôt s'orienter sur un call-template où l'on parcours les éléments un par un et où l'on véhicule la plus petite valeur rencontrée jusque là et qui devient la valeur retournée lorsque le dernier élément est atteint !

  3. #3
    Membre confirmé Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Par défaut
    Merci pour ta réponse.

    N'étant pas un pro sur XSLT, pourrais tu m'expliquer en quelques mots , quelle syntaxe aurait ce genre d'algo en XSLT ?

    Merci d'avance.

  4. #4
    Membre confirmé Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Par défaut
    Je précise que je cherche la solution la plus simple, et pas forcément la plus performante.

    Merci d'avance.

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    si tu est en XPATH 1.0, tu peux faire :

    //produit[not(prix < //produit/prix)]/name

  6. #6
    Membre confirmé Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Par défaut
    Merci, c'est parfait .

    Je tag en résolu.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/11/2013, 16h54
  2. afficher seulement les résultat les plus récentes
    Par kaayna dans le forum Langage SQL
    Réponses: 6
    Dernier message: 05/03/2010, 15h09
  3. Réponses: 52
    Dernier message: 13/03/2007, 15h07
  4. Afficher le plus petit des nombres
    Par wkm1807 dans le forum Access
    Réponses: 1
    Dernier message: 05/10/2005, 23h46
  5. [TP] Tirer 10 dates et afficher la plus petite
    Par moustaphes dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 16/08/2005, 09h54

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