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] Eliminer les doublons dans un noeud


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut [XSL] Eliminer les doublons dans un noeud
    Bonjour,

    J'ai le xml (simplifié) suivant :
    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
    <page>
    <Order>
    <link>
          <details>
            <OrderDetails>
              <domain>domaine.tld</domain>
            </OrderDetails>
            <OrderDetails>
              <domain>domaine.tld</domain>
            </OrderDetails>
            <OrderDetails>
              <domain>domaine.tld</domain>
            </OrderDetails>
            <OrderDetails>
              <domain>autredomaine.tld</domain>
            </OrderDetails>
            <OrderDetails>
              <domain>autredomaine.tld</domain>
            </OrderDetails>
          </details>
    </link>
    </Order>
    </page>
    Et je dois afficher une liste des domaines en évitant les doublons.
    J'attaque donc mon xsl comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
           <xsl:for-each select='/page/Order/links/details/OrderDetails'>
                <xsl:sort select='domain'/>
                <br/><xsl:value-of select="domain"/>
            </xsl:for-each>
    Seulement je n'arrive pas à virer les doublons, j'ai tenté avec preceding:sibling sans succès.
    La forme du Xml ne peut être modifiée.

    (il faut ensuite que je puisse glisser un xsl:if à côté du domaine lors de l'affichage pour ajouer ou non un bouton à ses côtés pour un traitement spécifique)

    Quelqu'un aurait une idée sur la façon de faire ?

    Merci

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    C'est comme ca qu'on utilise preceding-sibling pour faire ce que tu veux:

    not(. = ../preceding::my:group2/my:field2)
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:for-each select='/page/Order/links/details/OrderDetails[not(.=../preceding::OrderDetails/domain)]'>
    J'ai tenté avec ce code et quelques autres approchant et soit ça m'affiche tous les domaines, doublons inclus, soit rien.

  4. #4
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    Oups, je viens de trouver, il faut utiliser preceding sur le value-of-select

    Merci pour l'aide

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

Discussions similaires

  1. Réponses: 42
    Dernier message: 07/07/2012, 09h16
  2. Eliminer les doublons dans un tableau d'entiers
    Par engi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 21/03/2006, 13h59
  3. Eliminer des Doublon dans une Table
    Par Soulama dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/02/2005, 14h27
  4. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 12h18
  5. Éviter les doublons dans une requete
    Par royrremi dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/08/2004, 19h37

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