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 :

Filtrer des doublons XSLT


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    août 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2020
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Filtrer des doublons XSLT
    Bonjour,

    Je traite pour mon mémoire un corpus de termes qui contient des doublons:

    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
    <teiCorpus>
       <teiCorpus type="Revue-RH">
          <TEI>
             <text>
                <front>
                   <docTitle>
                      <titlePart>Le <term type="simpleterm" lang="en">sourcing</term>
                      </titlePart>
                   </docTitle>
                </front>
                <body>
                   <div>
                      <term type="complexterm" subtype="variant" lang="en">applicant tracking system</term>
                      <term type="acronym">ATS</term>
                      <term type="complexterm" lang="en">big data</term>
                      <term type="complexterm" lang="en">big data</term>
                      <term type="simpleterm">candidat</term>
                      <term type="simpleterm">candidat</term>
                      <term type="simpleterm">candidat</term>
                      <term type="simpleterm">candidat</term>
                      <term type="simpleterm">candidat</term>
                      <term type="complexterm">candidat potentiel</term>
                      <term type="complexterm">candidat potentiel</term>
     
    ....

    Je souhaiterais pouvoir garder qu'un seul terme à chaque fois et n'avoir aucun doublon du coup :
    J'ai essayé avec ce code, mais en vain :


    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
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        version="2.0"
        xpath-default-namespace="http://www.tei-c.org/ns/1.0">
     
        <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
     
        <xsl:key name="id" match="term" use="."/> 
     
        <xsl:template match="body">
            <xsl:for-each select="../div/term[generate-id()=generate-id(key('id',.)[1])]">
     
                    <xsl:apply-templates/>
     
            </xsl:for-each>
        </xsl:template>
     
    </xsl:stylesheet>

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 487
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 487
    Points : 2 612
    Points
    2 612
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:for-each select="../div/term[generate-id()=generate-id(key('id',.)[1])]">
    Cet xpath est incompréhensible : le problème n'est pas de la partie de generate-id() ou de key(), c'est le ../div. C'est peut-être une faute de frappe.

    Le problème principal reside dans l'application du xsl:apply-templates par défaut. Il faut préciser qu'on veut gérer le node term lui-même : il n'est pas inclu par défaut. Et puis le template matche div pour être plus clair ou plus simple.
    Code xslt1/2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:template match="div">
        <xsl:copy>
            <xsl:for-each select="term[generate-id()=generate-id(key('id',.)[1])]">
                <xsl:apply-templates select="." />
            </xsl:for-each>
        </xsl:copy>
    </xsl:template>

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    août 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2020
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    D'abord, merci pour votre réponse.

    J'ai essayé les lignes de code que vous avez écrit, mais j'ai en sortie un truc très chelou qui ressemble à ça :

    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
     <?xml version="1.0" encoding="UTF-8"?>
                      Le sourcing
                   <div>applicant tracking systemATSbig datacandidatcandidat potentielcandidatureconseiller en recherche de talents seniorCRHAdirection d’équipesembaucheemploiexpérience candidatgestion de projetsorganisationpostepotentielprofilprofil d’intérêtrecrutementrecrutement en lignerecruteurRH</div>
                      Les cinq principaux défis du recrutement en région
                   <div>entrepriseexpérience employéformationPMErecrutement socialrémunérationrémunération indirectestratégie</div>
                      L’expérience candidat : Quelques concepts essentiels
                   <div>demande d’emploimarketing RH</div>
                      Profils atypiques : Comment se faire valoir?
                   <div>certificat en gestion des ressources humainescurriculum vitæentrepreneurgestion des ressources humainesgestion du changement et de l’adhésion des employésinnovationprofil atypiquepromotionressources humaines</div>
                      Préserver la confiance et l’autonomie développées en temps de COVID-19
                   <div>compétencegestiontélétravail</div>
                      Le télétravail est là pour rester : 11 conseils pour adapter votre organisation à cette réalité
                   <div>développement professionnel de l’employéemployéemployeurgestion des identités et des accèsgestion des projets et des clientsGIAleaderleadershipleadership microgestion</div>
                      COVID-19 : se préparer à l’après-crise
                   <div>approvisionnementchoix de carrièremesures d’hygiènetravail à distance</div>
                         RH, la revue des CRHA et CRIA en mode agile : durer, se renouveler et demeurer pertinent
                   <div>communauté RHexpertise RHgestion de crisegestion des RHgestion du changementmieux-être</div>
                      La  à l’ère de la COVID-19
                   <div>burnoutcomité acquisitioncomité innovationcomité pivotconsultant RHÉPIéquipement de protection individuellemode de gestion collaboratifperformanceplein salairetop-down</div>
                      Le retour au travail soulève des enjeux en lien avec l’obligation de respect du secret professionnel des CRHA | CRIA
                   <div>déontologiesecret professionnelsyndic de l’Ordre</div>
                      La  à l’ère de la pandémie : les héritages de la crise
                   <div>contingencygestion des risques</div>
    [[[ Je précise que mon fichier .xml qui recense les termes a été obtenu à partir du corpus original (qui contient des textes extraits de revues RH) avec une transformation XSL ]]]
    C'est l'étape la plus importante de mon mémoire, si je ne réussis pas à retirer les doublons je ne peux pas procéder à la lemmatisation automatique :/

    Merci d'avance.
    Images attachées Images attachées  

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    août 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2020
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Il me manquait que le template qui matche tous les éléments avec leurs attributs pour que ça marche votre code!
    Merci encore une fois! c'est résolu ^^
    Images attachées Images attachées  

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

Discussions similaires

  1. [AC-2007] Masquer et filtrer des doublons sur une requête
    Par Yahialat dans le forum Access
    Réponses: 5
    Dernier message: 10/04/2018, 09h52
  2. Comment filtrer des doublon en fonction d'une variable
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 20/06/2012, 19h18
  3. Réponses: 8
    Dernier message: 04/05/2007, 14h33
  4. [xslt] filtrer des valeurs numériques
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 20/09/2005, 12h01
  5. Recherche et tri sur des doublons XSLT
    Par MusSDev dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 01/06/2005, 09h27

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