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 :

Prendre un chaine avant un caractère type trait d'union


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Prendre un chaine avant un caractère type trait d'union
    Bonjour,

    Je débute en XSLT et en ayant cherché sur le forum, je n'ai pas trouvé réponse.
    Je cherche à récupère une valeur qui se trouve avant le caractère " - ".
    Je récupère une valeur de la manière suivante : IDCLIENT - NOM DU CLIENT
    Je voudrais extraire l'id du client qui se trouve toujours avant le tiret.
    J'ai essayé avec substring mais le problème est que l'id client n'a pas un nombre de caractère fixe.
    Comment faire pour extraire cet IDCLIENT de cette chaine de caractère?
    Si j'utilise tokenize, je pense qu'il va me séparer l'id en 2 balises..

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <id><xsl:value-of select="str:tokenize(name_customer, '-')"></id>


    Merci pour votre aide.

  2. #2
    Membre émérite
    Pour une fonction built-in en xslt2 comme tokenize(), il n'est pas nécessaire d'en avoir préfixé.
    En xslt 2:
    Code xslt2 :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    <id><xsl:value-of select="tokenize(name_customer, ' - ')[1]" /></id>
    <nom><xsl:value-of select="tokenize(name_customer, ' - ')[2]" /></nom>

    En xslt 1 ou 2:
    Code xslt :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    <id><xsl:value-of select="substring-before(name_customer, ' - ')" /></id>
    <nom><xsl:value-of select="substring-after(name_customer, ' - ')" /></nom>

    Je prends des espaces vides comme tels en rigueur : sinon, on s'accommode.

  3. #3
    Futur Membre du Club
    Merci pour votre réponse rapide et précise !
    Je ne connaissais pas substring-before.

    Lionel