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

XML/XSL et SOAP Discussion :

Répétition de données identiques...


Sujet :

XML/XSL et SOAP

  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut Répétition de données identiques...
    Je dispose d'un fichier XML contenant une liste de personne avec pour chacun d'eux une liste d'outils.
    Problème:Beaucoup de ces personnes utilisent les même outils, et j'aimerais créer un fichier XSL qui me permette de faire une synthèse en HTML des outils utilisés en tout, donc sans répétition d'un même outil.
    Comment faire?
    Le XML est du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <personne><nom>chaperon</nom><outils><outil nom=marteau/></outils>
    <personne><nom>dupont</nom><outils><outil nom=marteau/><outil nom=scie/></outils>
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    déjà tu peux récupérer toutes les balises "outils" avec Xpath ( (http://jerome.developpez.com/xmlxsl/xpath/ )
    par contre il y a les doublons à supprimer, et la je vois 2 solutions :
    - pour chaque outil, refaire une recherche sur les outils déjà affichés pour voir si il apparait déjà
    - appliqué une deuxième feuille de style

    mais dans les 2 cas tu perds beaucoup de temps d'exécution

  3. #3
    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
    Par défaut
    j'ai deja utilise ce genre d'alogo en xslt,je l'ai pas sous la main tout de suite mais je vais deja essayer de l'expliquer
    1-recuperer par une template tous les outils TRIES(edit: pt'te pas besoin de trier dans ton cas )
    2-dans cette template tu selectionne le premier element et tu prends sa valeurs
    3-tu traite cet element
    4-tu fais un call template avec parametre select=toutes les balises outils qui n'ont pas cette valeur
    5-retour en 2

    j'ai pas bcp de temps donc pas sur de pouvoir retrouver mon fichier

  4. #4
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Citation Envoyé par Erwy
    j'ai deja utilise ce genre d'alogo en xslt,je l'ai pas sous la main tout de suite mais je vais deja essayer de l'expliquer
    1-recuperer par une template tous les outils TRIES(edit: pt'te pas besoin de trier dans ton cas )
    2-dans cette template tu selectionne le premier element et tu prends sa valeurs
    3-tu traite cet element
    4-tu fais un call template avec parametre select=toutes les balises outils qui n'ont pas cette valeur
    5-retour en 2

    j'ai pas bcp de temps donc pas sur de pouvoir retrouver mon fichier
    Ce serait vraiment génial si tu retrouvais la synthaxe de ce traitement...car malgré une large documentation sur xml, je n'ai pas de renseignements sur les "call template".

    Merci d'avance et merci pour ta réponse.
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    tu trouvera plein d'informations sur le site suivant
    http://zvon.org/xxl/XSLTutorial/Output/index.html

    et la liste des balises XSLT sur cette page :
    http://www.w3schools.com/xsl/xsl_w3celementref.asp

  6. #6
    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
    Par défaut
    je t'ai fait un xslt qui supprime les doublons pour creer un nouveau xml,il y a juste besoin de l'adapter au html.Par contre lis bien la doc de mathix si tu veux comprendre
    et vive le recursif
    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"?>
    <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:template match="/">
     
    	<xsl:element name="liste">
     
    	<xsl:call-template name="doublon">
    	<xsl:with-param name="noeud" select="//outil"/>
    	</xsl:call-template>
     
    	</xsl:element>
     
    	</xsl:template>
     
    	<xsl:template name="doublon">
     
    	<xsl:param name="noeud"/>
    	<xsl:variable  name="valeur" select="$noeud[1]/@nom"></xsl:variable>
     
    	<xsl:element name="outils">
    	<xsl:value-of select="$valeur"></xsl:value-of>
    	</xsl:element>
     
     
    	<xsl:if test="$noeud[@nom!=$valeur]">
     
    	<xsl:call-template name="doublon">
    	<xsl:with-param name="noeud" select="$noeud[@nom!=$valeur]"/>
    	</xsl:call-template>
     
    </xsl:if>	
     
    	</xsl:template>
    </xsl:stylesheet>
    teste sous xmlspy

  7. #7
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Merci beaucoup pour votre aide à tous!
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

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

Discussions similaires

  1. [VBA-E] Données identiques sur plusieurs feuilles
    Par pm2036 dans le forum Macros et VBA Excel
    Réponses: 42
    Dernier message: 09/05/2007, 15h05
  2. Enlever les données identiques dans une table
    Par DubeiserTM dans le forum Langage SQL
    Réponses: 15
    Dernier message: 31/01/2007, 21h14
  3. Enlever les données identiques dans une table
    Par DubeiserTM dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/01/2007, 18h27
  4. [SQL 2005] Insertion de deux données identiques dans une table
    Par skystef dans le forum Accès aux données
    Réponses: 3
    Dernier message: 04/01/2007, 22h50
  5. [sql server][c#] problème d'insertion avec deux données identiques
    Par skystef dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/12/2006, 16h28

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