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 :

[XSL] Traitement chaîne de caractères


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Par défaut [XSL] Traitement chaîne de caractères
    Bonjour,

    J'ai un fichier XML comme celui-ci :

    Je souhaiterais effectuer une transformation XSL dessus pour obtenir un fichier XML de sortie du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
    <a>5</a>
    <a>6</a>
    Alors, j'arrive bien à récupérer la string "1 2 3 4 5 6 ", et pourquoi pas récupérer le "1" avec substring-before(). Le problème, c'est que je ne sais pas comment boucler pour obtenir le résultat que je souhaite. Ca doit être tout con, je vous remercie donc d'avance ^^.

  2. #2
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Par défaut
    bon, j'ai fini par trouver. En fait, il faut passer par xalan:tokenize()
    Pour expliquer vite fait, j'avais un fichier XML du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td>1 2 3 4 5 6 </td>
    <td>1.0 1.0 1.0 1.0 1.0 1.0 </td>
    à transformer en :

    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
       <SOLLICITATION-GRP>
          <SOLLICITATION>
             <NUM_MECA>1</NUM_MECA>
             <COEF_MULT_FIXE>1.0</COEF_MULT_FIXE>
          </SOLLICITATION>
          <SOLLICITATION>
             <NUM_MECA>2</NUM_MECA>
             <COEF_MULT_FIXE>1.0</COEF_MULT_FIXE>
          </SOLLICITATION>
          <SOLLICITATION>
             <NUM_MECA>3</NUM_MECA>
             <COEF_MULT_FIXE>1.0</COEF_MULT_FIXE>
          </SOLLICITATION>
          <SOLLICITATION>
             <NUM_MECA>4</NUM_MECA>
             <COEF_MULT_FIXE>1.0</COEF_MULT_FIXE>
          </SOLLICITATION>
          <SOLLICITATION>
             <NUM_MECA>5</NUM_MECA>
             <COEF_MULT_FIXE>1.0</COEF_MULT_FIXE>
          </SOLLICITATION>
          <SOLLICITATION>
             <NUM_MECA>6</NUM_MECA>
             <COEF_MULT_FIXE>1.0</COEF_MULT_FIXE>
          </SOLLICITATION>
       </SOLLICITATION-GRP>
    Voilà la solution pour ceux que ça intéresserait : (coef et solli étant mes 2 chaînes de caractères)

    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
     
       <xsl:variable name="coef"   select="td[8]" />
       <xsl:variable name = "solli" select="td[7]" />
       <xsl:if test="$definition='Fixe'">
          <xsl:variable name = "A" select= "$coef"/>
          <xsl:for-each select="xalan:tokenize($solli,' ')">
             <SOLICITATION>
                <NUM_MECA><xsl:value-of select="."/></NUM_MECA>
                <xsl:variable name = "B" select= "substring-before($A,' ')"/>
                <xsl:variable name = "A" select= "substring-after($A,' ')"/>
                <COEF_MULT_FIXE>
                   <xsl:value-of select = "$B"/>
                </COEF_MULT_FIXE>
             </SOLICITATION>
          </xsl:for-each>			
       </xsl:if>
    ++

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

Discussions similaires

  1. Traitement chaîne de caractères en macro variable
    Par discus23 dans le forum Macro
    Réponses: 4
    Dernier message: 12/12/2014, 10h02
  2. Traitement chaîne de caractères
    Par chami1708 dans le forum Requêtes
    Réponses: 7
    Dernier message: 01/07/2013, 17h14
  3. [XL-2007] Traitement chaîne de caractère
    Par lecter85 dans le forum Excel
    Réponses: 6
    Dernier message: 18/07/2012, 12h08
  4. traitement chaîne de caractères et insertion colonnes
    Par keely dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/04/2010, 13h49
  5. [RegEx] Traitement d'une chaîne de caractères
    Par Youn05 dans le forum Langage
    Réponses: 4
    Dernier message: 01/04/2007, 12h18

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