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 :

Recherche avec regex [XSLT 2.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Recherche avec regex
    Bonjour,

    J'ai ce document
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <doc>
        <ent>
            <R>maison</R><I>italique</I><R>la maison voir </R><I>renvoi du mot</I><R>avoir</R><I>le chaton</I>
        </ent>
        <ent>
            <R>voir</R><I>demain</I><R>toit</R><I>bleu</I><R>(voir </R><I>renvoi du mot</I><R>le chaton</R>
        </ent>
    </doc>
    Je dois renommer <I> quand il est précédé d'un <R> dans lequel se trouve 'voir' .

    J'ai essayer en passant par une regex mais malgré les doc je ne trouve pas la bonne syntaxe.
    Voil

    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
    <xsl:template match="/">
            <xsl:apply-templates/>
        </xsl:template>
     
        <xsl:template match="I">
            <xsl:choose>
                <xsl:when test="preceding-sibling::*[1][self::R and . = 'REGEX????->(^| |\()[Vv]oir( *)']">
                    <ref><xsl:value-of select="."/></ref>
                </xsl:when>
     
                <xsl:otherwise>
                    <pasRef><xsl:value-of select="."/></pasRef>
                </xsl:otherwise>
            </xsl:choose>
     
            </xsl:template>
     
        <xsl:template match="R">
            <toto><xsl:apply-templates/></toto>
        </xsl:template>
    Si quelqu'un a une idée
    Merci

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Plus simple que vous imaginez...
    Code xsl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!--
    <xsl:when test="preceding-sibling::*[1][self::R and . = 'REGEX????->(^| |\()[Vv]oir( *)']">
    -->
    <!-- xslt 2.0 -->
    <xsl:when test="preceding-sibling::*[1][name()='R' and matches(.,'[Vv]oir')]">

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    J'allais justement poster ma solution. A force de lire les docs j'avais trouvé la solution qui est la même que vous proposez.
    Merci beaucoup

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

Discussions similaires

  1. Recherche avec Locate option lopartialKey
    Par jeje.r dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/12/2022, 10h56
  2. Rechercher Remplacer Avancé avec Regex
    Par nasboy3d dans le forum C++
    Réponses: 19
    Dernier message: 17/11/2011, 21h15
  3. Problème de recherche avec les REGEX
    Par sampaiX dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 15/06/2010, 16h47
  4. recherche avec findnearest
    Par souad26 dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/11/2004, 20h58
  5. Enlever la surbrillance lors d'une recherche avec vi
    Par sekiryou dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 04/03/2004, 13h55

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