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

XML/XSL et SOAP Discussion :

Récupérer une valeur, faire une boucle et rechercher par Key()


Sujet :

XML/XSL et SOAP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Récupérer une valeur, faire une boucle et rechercher par Key()
    Bonjour à tous,
    Ma question est de savoir d'abord comment récupérer une valeur contenue dans un <INPUT type="text"...> en utilisant XSL, cette valeur contient des chaines de textes séparés par semi-column ";" comme par exemple "toto;ameli;cclas;javascript;PHP;ASP Classic". Puis je veux effectuer une boucle en se basant sur cette chaîne après l'avoir transformée en tableau à, ici dans notre cas, 6 éléments. Enfin, à l'intérieur de cette boucle comment effectuer une recherche par KEY() en fonction de chacune de ces valeurs.

    Pour simplifier mon problème peut être divisé en 3 parties :
    1- comment récupérer, en XSL, la valeur de l'input dans une variable XSL que j'appellerai par exemple myValue.
    2- comment spliter, toujours en XSL myValue par le séparateur ";". Et faire une boucle, que j'appellerai myLoop, là-dessus.
    3- à l'intérieur de ma boucle myLoop faire varier la valeur de ma clé de recherche KEY() et toujours en XSL.

    Toute aide est la bienvenue, par ce que cela fait un moment que je cherche mais je n'ai pas trouvé ce que je voulais.

    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Je suis surpris que ton apprentissage de XSLT avec key() ne te permette pas de savoir faire 1 et 3. Mais bon.

    Citation Envoyé par mertah Voir le message
    1- comment récupérer, en XSL, la valeur de l'input dans une variable XSL que j'appellerai par exemple myValue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="myValue" select="..." />
    Citation Envoyé par mertah Voir le message
    3- à l'intérieur de ma boucle myLoop faire varier la valeur de ma clé de recherche KEY() et toujours en XSL.

    Citation Envoyé par mertah Voir le message
    2- comment spliter, toujours en XSL myValue par le séparateur ";". Et faire une boucle, que j'appellerai myLoop, là-dessus.
    En XSLT 2.0 : avec tokenize()

    En XSLT 1.0 : en versant larmes et sang. L'idée est de faire un template récursif :

    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
    <xsl:template name="handleValues">
      <xsl:param name="values"/>
     
      <xsl:choose>
      <xsl:when test="contains($values, ';')">
        <xsl:call-template name="handleOneValue">
          <xsl:with-param name="value" select="substring-before($values, ';')"/>
        </xsl:call-template>
        <xsl:call-template name="handleValues">
          <xsl:with-param name="values" select="substring-after($values, ';')"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:call-template name="handleOneValue">
          <xsl:with-param name="value" select="$values"/>
        </xsl:call-template>
      </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
     
    <xsl:template name="handleOneValue">
      <xsl:param name="value"/>
      <!-- Traitement voulu -->
      <xsl:value-of select="$value"/>
    </xsl:template>

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Je te remercie thelvin de tes réponses.
    A vrai dire; là où je butte c'est dans la récupération de la valeur souhaitée et qui se trouve dans un champ <INPUT type="text" name="Selected_Demand"..> qui contient une valeur telle que "vba;php;cplusplus;"; En xsl même pas avec
    <xsl:variable name="myValue" select="..." /> parce que dans le select je ne sais pas comment lui assigner la valeur de mon INPUT, j'ai essayé d'utiliser du javascript mais il me l'affiche en tant que text sans aucune interprétation.

    C'est le processus entier de récupération de cette fameuse variable + son splitage en vue de boucler dessus + faire varier la valeur de ma clé (Je l'avoue c'est fastoche), qui me met un peu en déroute.

    J'ai réussi à spliter séparément une chaîne de caratère séparer par de ";". De même que de faire varier la valeur de KEY(). Mais de façon séparée. Avec le risque de me répéter, je n'ai pas réussi à récupérer la valeur de ma fameuse variable qui est le point d'entrée de tout ce processus.

    J'espère être plus clair maintenant.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Mais oui mais 'faut apprendre XSLT avant d'essayer de s'en servir -_-°.

    Si ta donnée était ailleurs que dans ton input, tu ferais comment pour la récupérer ? Eh ben c'est exactement pareil dans un input.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Récupérer la valeur d'une variable d'une boucle
    Par flo1411 dans le forum Excel
    Réponses: 2
    Dernier message: 08/03/2013, 11h57
  3. Réponses: 6
    Dernier message: 10/01/2012, 18h08
  4. [WD16] Récupérer la valeur d'une colonne d'une table d'une ligne précise
    Par elghers_hocine dans le forum WinDev
    Réponses: 16
    Dernier message: 06/05/2011, 18h11
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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