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 :

variables XSL dans SVG


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut variables XSL dans SVG
    à tous
    j'aimerais savoir si on peut utiliser les variables de XSL avec SVG et si oui comment?
    Pour l'instant je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsl:template match="/">
    <xsl:call-template name="haut-larg">
    		<xsl:with-param name="hauteur" select="0" />
    		<xsl:with-param name="largeur" select="0" />
    </xsl:call-template>
    <svg>
    ...
    <rect x="$largeur" y="$hauteur" width="50" height="50" fill="#564" > 
    ...
    </svg>
    ...
    </xsl:template>
    mais ceci ne fonctionne pas (ça met 0 à la place de $hauteur et $largeur alors qu'il sont différents de 0).
    J'ai essayé en créant mes variables globalement mais le résultat est le même.
    Comment faire ::::
    d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Vous faites appel à un template appelé "haut-larg" (dont vous n'avez ici pas mis la définition !) en lui passant systématiquement "0" dans ces paramètres !!
    Il est donc normal qu'ils soient à zéro.
    Il faudrait quelque chose comme cela :

    <xsl:template match="/">
    <xsl:call-template name="haut-larg">
    <xsl:with-param name="hauteur" select="noeudHauteur" />
    <xsl:with-param name="largeur" select="noeudLargeur" />
    </xsl:call-template>
    ...
    </xsl:template>

    <xsl:template name="haut-larg">
    <xsl:with-param name="hauteur" select="noeudHauteur" />
    <xsl:with-param name="largeur" select="noeudLargeur" />
    <svg>
    <rect x="$largeur" y="$hauteur" width="50" height="50" fill="#564" >
    </svg>
    </xsl:template>

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    bonjour et merci à toi slopera.
    J'ai pas pu te répondre avant car j'ai eu de gros problèmes, excuse moi.
    J'ai déjà essayé ta méthode mais le problème c'est que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <rect x="$largeur" y="$hauteur" width="50" height="50" fill="#564" >
    ça ne marche pas puisque $largeur et $hauteur ne sont pas considérées comme des variables et ça me remplace leur valeur par 0 (d'ailleur je peux mettre n'importe quoi comme variable, même des variables inexistantes telles $frejgierfrkkkeeg, ça me remplace la variable par 0).


    J'ai trouvé la solution entre temps donc pour ceux que ça interesse, il faut faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <rect x="{$largeur}" y="{$hauteur}" width="50" height="50" fill="#564" >
    Il faut mettre des accolades autour des variables en plus du dollar.
    Encore merci slopera.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Effectivement, en xsl, on aurait également pu faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:element name="rect">
       <xsl:attribute name="x"><xsl:value-of select="$largeur" /></xsl:attribute>
       <xsl:attribute name="y"><xsl:value-of select="$hauteur" /></xsl:attribute>
       <xsl:attribute name="width">50</xsl:attribute>
       <xsl:attribute name="height">50</xsl:attribute>
       <xsl:attribute name="fill">#564</xsl:attribute>
    </xsl:element>
    Je ne connaissais pas l'usage des accolades ... c'est moins lourd !!

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

Discussions similaires

  1. Récupération d'une variable javascript dans une feuille XSL
    Par drakkar64 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/08/2008, 17h56
  2. [XSL] Utiliser une variable PHP dans XSL
    Par mabedan dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 13/08/2007, 15h25
  3. [XSLT]passer une variable js dans une instruction xsl
    Par ounours dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/04/2007, 18h39
  4. [JavaScript] Noeud XSL dans variable Javascript
    Par soli.f dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/04/2007, 12h41
  5. [XSL~FO][FOP] variables possibles dans les attributs de tags ?
    Par lebechen dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 29/06/2006, 09h17

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