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 :

[XSLT] recursivité, evaluation d'une expression


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 46
    Points
    46
    Par défaut [XSLT] recursivité, evaluation d'une expression
    Bonjour,

    Voici mon code xml :
    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
     
    <?xml version="1.0" encoding="iso-8859-1" ?>
    <?xml-stylesheet type="text/xsl" href="evalue1.xsl"?> 
     
    <arbre>
       <noeud val="-">
          <noeud val="+">
             <noeud val="*">
                <noeud val="2"/>
                <noeud val="x"/>
             </noeud>
             <noeud val="4"/>
          </noeud>
          <noeud val="y"/>
       </noeud>
    </arbre>
    et mon code xsl :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
     
        <xsl:template match="/">
            <xsl:apply-templates select="//arbre"/>
        </xsl:template>
     
     
        <xsl:template match="arbre">
            <xsl:apply-templates select="child::noeud"/>
        </xsl:template>
     
     
        <xsl:template match="noeud">
                <xsl:choose>
                    <xsl:when test="./@val ='-' ">
                        <xsl:variable name="fg">
                            <xsl:apply-templates select="child::noeud[position()='1']"></xsl:apply-templates>
                        </xsl:variable>
                        <xsl:variable name="fd">
                            <xsl:apply-templates select="child::noeud[position()='2']"></xsl:apply-templates>
                            <xsl:choose>
                               <xsl:when test="./@val ='y' ">
                               <xsl:value-of select="$fd ='3'"/>
                               </xsl:when>
                            </xsl:choose>
                        </xsl:variable>
                        <xsl:value-of select="$fg-$fd"/>
                    </xsl:when>
     
                    <xsl:when test="./@val ='+' ">
                        <xsl:variable name="fg">
                            <xsl:apply-templates select="child::noeud[position()='1']"></xsl:apply-templates>
                        </xsl:variable>
                        <xsl:variable name="fd">
                            <xsl:apply-templates select="child::noeud[position()='2']"></xsl:apply-templates>
                        </xsl:variable>
                        <xsl:value-of select="$fg+$fd"/>
                    </xsl:when>
     
                    <xsl:when test="./@val ='*' ">
                        <xsl:variable name="fg">
                            <xsl:apply-templates select="child::noeud[position()='1']"></xsl:apply-templates>
                        </xsl:variable>
                        <xsl:variable name="fd">
                            <xsl:apply-templates select="child::noeud[position()='2']"></xsl:apply-templates>
                            <xsl:choose>
                               <xsl:when test="./@val ='x' ">
                               <xsl:value-of select="$fd ='3'"/>
                               </xsl:when>
                            </xsl:choose>
                        </xsl:variable>
                        <xsl:value-of select="$fg*$fd"/>
                    </xsl:when>
     
                    <xsl:otherwise>
                        <xsl:value-of select="./@val"/>
                    </xsl:otherwise> 
                </xsl:choose>
        </xsl:template>
     
    </xsl:stylesheet>
    J'aimerais evaluer une expresion comportant des variables mais je n'arrive pas à modifier mes variables x et y du code xml pour pouvoir l'évaluer.
    Pouvez vous m'aider.
    merci

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    On ne peut pas modifié les variables.
    Peut-on modifier la valeur d'une variable XSLT ?
    Il faudra revoir l'algo et passer par des paramètres
    Un exemple avec un call-templates
    Comment effectuer l'équivalent d'une boucle avec compteur en XSLT ?
    mais cela fonctionne aussi avec les apply-templates

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 02/08/2006, 15h32
  2. evaluation d'une expression arithmetique
    Par yasmine77 dans le forum C++
    Réponses: 4
    Dernier message: 04/04/2006, 09h11
  3. [Oracle 9i] Evaluation d'une expression
    Par Process Linux dans le forum Oracle
    Réponses: 2
    Dernier message: 21/03/2006, 12h55
  4. Evaluation d'une expression arithmétique
    Par MysticKhal_0 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 10/03/2006, 18h25
  5. [EXP] Evaluation dans une expression régulière
    Par SergentHeinz dans le forum Langage
    Réponses: 7
    Dernier message: 10/11/2005, 18h17

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