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 :

[DEBUTANT][XSL]Méthode muench et suppression de doublons


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [DEBUTANT][XSL]Méthode muench et suppression de doublons
    Bonjour à tous,

    J'ai le fichier XML suivant :

    <beneficiaire>
    <nom>Nom Utilisateur A</nom>
    <prenom>Prénom Utilisateur A</prenom>
    <sport1>Parachutisme</sport1>
    <sport2>Parapente</sport2>
    <sport3>Plongée</sport3>
    </beneficiaire>

    <beneficiaire>
    <nom>Nom Utilisateur B</nom>
    <prenom>Prénom Utilisateur B</prenom>
    <sport1>Saut à l'elastique</sport1>
    <sport2>Parapente</sport2>
    <sport3>Plongée</sport3>
    </beneficiaire>
    ...

    Je peux avoir 5 bénéficiaires maximum.

    Le problème est que je dois afficher sans doublons l'ensemble des sports pratiqués par les bénéficiaires.

    J'ai vu la méthode muench dans la FAQ mais cela me parait difficile à appliquer dans ce cas.

    Note : Je ne peux pas modifier le fichier XML afin d'avoir :

    <beneficiaire>
    <nom>...</nom>
    <prenom>...</prenom>
    <sport>...</sport>
    <sport>...</sport>
    <sport>...</sport>
    </beneficiaire>
    Je suis un peu perdu. Je voulais utiliser une variable de stockage mais ce n'est pas possible apparemment. Je remercie d'avance ceux qui voudront m'aider.

  2. #2
    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 : 48
    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
    Par défaut
    pourquoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    	<xsl:key name="sport" match="beneficiaire/*[starts-with(name(),'sport')]" use="."></xsl:key>
    	<xsl:template match="/">
    	<r>
    	<xsl:for-each select="(*/beneficiaire/*[starts-with(name(),'sport')])[generate-id(.)=generate-id(key('sport',.)[1])]">
    	<s><xsl:value-of select="."></xsl:value-of></s>
    	</xsl:for-each>
    	</r>
     
    	</xsl:template>
    </xsl:stylesheet>

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup Erwy.

    Je suis désolé mais je vais devoir encore te demander quelque chose.

    Le fichier qui m'a été donné est finalement de la forme suivante :

    <root>

    <sListe_Pages>
    <G3000 />
    <G3000 />
    </sListe_Pages>

    <NCAIS>12135</NCAIS>
    <NCON>P00002251</NCON>
    <NVER_CON>0001</NVER_CON>
    <NIDE-NIV-PDT>005</NIDE-NIV-PDT>
    <NIDE_NIV_PDT>005</NIDE_NIV_PDT>
    <DateSysteme>20071225</DateSysteme>

    <listesegments>

    <segment nom="rtech">
    <donnee nom="cide_seg" longueur="8">RTECH</donnee>
    <donnee nom="cide_segq" longueur="8">R81601</donnee>
    <donnee nom="cret" longueur="2">00</donnee>
    <donnee nom="nmsg_abor" longueur="5">00000</donnee>
    <donnee nom="lmsg_abor" longueur="50" />
    </segment>

    <segment nom="r81601">
    <donnee nom="cide_seg" longueur="8">R81601</donnee>
    <donnee nom="cadr_edi" longueur="1">D</donnee>
    <donnee nom="lnom_dir" longueur="32"></donnee>
    <donnee nom="lnom_eca" longueur="32"></donnee>
    <donnee nom="lrso_eca" longueur="32" />
    </segment>

    <segment nom="r81602">
    <donnee nom="cide_seg" longueur="8">R81602</donnee>
    <donnee nom="lciv" longueur="4">M.</donnee>
    <donnee nom="lnom" longueur="27"></donnee>
    <donnee nom="lprn" longueur="15"></donnee>
    <donnee nom="lrso" longueur="32" />
    </segment>

    <segment nom="r81603">
    <donnee nom="cide_seg" longueur="8">R81603</donnee>
    <donnee nom="dddv_con" longueur="8">20071225</donnee>
    <donnee nom="dfdv_con" longueur="8">20080224</donnee>
    <donnee nom="dhh_dddv_con" longueur="2">12</donnee>
    <donnee nom="dmn_dddv_con" longueur="2">00</donnee>
    </segment>

    <segment nom="r81604">
    <donnee nom="cide_seg" longueur="8">R81604</donnee>
    <donnee nom="lnom" longueur="27"></donnee>
    <donnee nom="lprn" longueur="15"></donnee>
    <donnee nom="dnai" longueur="8">19501030</donnee>
    <donnee nom="ccsp_gav" longueur="2">CO</donnee>
    <donnee nom="clien_sou" longueur="1">S</donnee>
    <donnee nom="sport1" longueur="40">Varappe</sport1>
    <donnee nom="sport2" longueur="40">Bobsleigh</sport2>
    <donnee nom="sport3" longueur="40">Luge de compétition</sport3>
    </segment>

    <segment nom="r81604">
    <donnee nom="cide_seg" longueur="8">R81604</donnee>
    <donnee nom="lnom" longueur="27"></donnee>
    <donnee nom="lprn" longueur="15"></donnee>
    <donnee nom="dnai" longueur="8">19810709</donnee>
    <donnee nom="ccsp_gav" longueur="2">EM</donnee>
    <donnee nom="clien_sou" longueur="1">D</donnee>
    <donnee nom="sport1" longueur="40">Luge de compétition</sport1>
    <donnee nom="sport2" longueur="40">Bobsleigh</sport2>
    <donnee nom="sport3" longueur="40">Moto neige</sport3>
    </segment>

    <segment nom="r81604">
    <donnee nom="cide_seg" longueur="8">R81604</donnee>
    <donnee nom="lnom" longueur="27"></donnee>
    <donnee nom="lprn" longueur="15"></donnee>
    <donnee nom="dnai" longueur="8">19870328</donnee>
    <donnee nom="ccsp_gav" longueur="2">FO</donnee>
    <donnee nom="clien_sou" longueur="1">D</donnee>
    <donnee nom="sport_risque" longueur="120"> </donnee>
    <donnee nom="sport1" longueur="40">Moto neige</sport1>
    <donnee nom="sport2" longueur="40">Hockey sur glace </sport2>
    <donnee nom="sport3" longueur="40">Sports mécaniques</sport3>
    </segment>

    <segment nom="r81605">
    <donnee nom="cide_seg" longueur="8">R81605</donnee>
    <donnee nom="nide_niv_gar" longueur="3">030</donnee>
    <donnee nom="lniv" longueur="35">Familiale 5%</donnee>
    <donnee nom="ltyp_cel" longueur="15">FAMILIALE</donnee>
    <donnee nom="cseuil_ipp" longueur="3">005</donnee>
    <donnee nom="cdev" longueur="3">EUR</donnee>
    </segment>

    </listesegments>
    </root>
    Le problème reste le même c'est à dire afficher tous les sports présents dans le R81604 sans doublons. J'ai essayé d'appliquer ta méthode j'ai du mal avec les chemins. Un pdf est généré à partir du flux xml et du fichier xsl mais une erreur apparait. Merci d'avance.

  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 : 48
    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
    Par défaut
    attention avec le copier/coller, pas très propre tout ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <donnee nom="sport1" longueur="40">Varappe</sport1> 
    <donnee nom="sport2" longueur="40">Bobsleigh</sport2>
    <donnee nom="sport3" longueur="40">Luge de compétition</sport3>
    le chemin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:key name="sport" match="donnee[starts-with(@nom,'sport')]" use="."></xsl:key>

Discussions similaires

  1. [debutant][xsl][css] xsl + css
    Par fanchic29 dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 16/04/2008, 18h31
  2. [debutant] suppression des doublons absolus
    Par Auteur dans le forum Langage SQL
    Réponses: 9
    Dernier message: 19/10/2007, 09h26
  3. [langage] Suppression de doublon dans tableau
    Par LFC dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2004, 14h08
  4. Requête de suppression de doublons : besoin d'aide
    Par biocorp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2004, 17h04
  5. [LG]Suppression de doublons
    Par moustique31 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2003, 21h03

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