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 :

Découper un élément texte


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de johweb
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Par défaut Découper un élément texte
    Bonjour à tous.

    Dans un fichier xml, j'ai un élément texte formaté comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <monElement>valeur1,valeur2,valeur3,valeur4</monElement>
    <monElement>valeur5,valeur6,valeur7,valeur8</monElement>
    Parfois, certaines valeurs sont vides, mais cela donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <monElement>valeur1,,valeur3,</monElement>
    les virgules sont toujours présentes.

    Je cherche à séparer les valeurs pour les répartir ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <monElement>
        <t1>valeur1</t1>
        <t2>valeur2</t2>
        <t3>valeur3</t3>
        <t4>valeur4</t4>
    </monElement>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <monElement>
        <t1>valeur1</t1>
        <t2/>
        <t3>valeur3</t3>
        <t4/>
    </monElement>
    pour mon deuxième exemple.

    Je sais que je dois utiliser un template récursif avec les fonctions substring-before et substring-after, mais je sèche...
    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Pourtant si tu sais qu'il faut utiliser un template récursif et que tu sais quelles fonctions utiliser, t'as normalement toutes les billes :

    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
    <xsl:template name="split">
      <xsl:param name="input" />
      <xsl:param name="index" select="'1'"/>
     
      <xsl:choose>
        <xsl:when test="contains($input, ',')">
          <xsl:element name="concat('t', $index)">
            <xsl:value-of select="substring-before($input, ',')"/>
          </xsl:element>
          <xsl:call-template name="split">
            <xsl:with-param name="input" select="substring-after($input, ',')"/>
            <xsl:with-param name="index" select="number($index)+1"/>
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <xsl:element name="concat('t', $index)">
            <xsl:value-of select="$input"/>
          </xsl:element>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template>

  3. #3
    Membre chevronné Avatar de johweb
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Par défaut
    Merci de ta réponse, je vais tester cela dès que je serai sur mon poste.

    (et puis on peut avoir tout le trousseau de clés, mais ne pas savoir dans quel ordre les serrures s'ouvrent... je ne fais pas de traitement xsl assez souvent pour que cela soit un automatisme... )

Discussions similaires

  1. Attribuer un mouvement à un élément text
    Par FstDsi dans le forum Forms
    Réponses: 15
    Dernier message: 05/11/2008, 10h28
  2. Découper un fichier texte
    Par idalloul dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 07/10/2008, 10h27
  3. Affichage d'un élément TEXT
    Par adiltyane dans le forum Forms
    Réponses: 2
    Dernier message: 18/04/2008, 16h28
  4. Découper un champ texte quand on rencontre une virgule
    Par jeanfrancois dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2006, 12h10
  5. Limiter la saisie dans un élément texte
    Par manou.K dans le forum Oracle
    Réponses: 2
    Dernier message: 28/07/2005, 11h41

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