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] Réutiliser un contexte mémorisé dans une variable


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut [XSLT] Réutiliser un contexte mémorisé dans une variable
    J'ai un code du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <xsl:template name="c_TableColspan">
    <xsl:param name="type"/>
    <xsl:variable name="vartgroup" select="ancestor::tgroup"/>
    <xsl:variable name="varspanspec">
     <xsl:choose>
      <xsl:when test="$type != 1"><xsl:value-of select="current()"/></xsl:when>
      <xsl:otherwise><xsl:value-of select="$vartgroup/spanspec[@spanname=current()/@spanname]"/></xsl:otherwise>
     </xsl:choose>
    </xsl:variable>
    <xsl:variable name="varnamest" select="$varspanspec/@namest"/>
    </xsl:template>
    Pourquoi la ligne
    <xsl:variable name="varnamest" select="$varspanspec/@namest"/>
    n'est pas valide?

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    parce que $varspanspec/@namest est une expression XPath valide uniquement si $varspanspec est une variable de type NodeList. Or, de la façon dont ta variable varspanspec est construite (son contenu est défini entre la balise ouvrante et la balise fermante et non dans son attribut select), elle est de type RTF (Result Tree Fragment), un type spécifique à XSLT (et non à XPath), dont tu ne peux guère faire plus que l'afficher.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    On ne peut pas faire de "if" ou "choose" à l'interieur du select=""?

    Donc, il n'est pas possible d'avoir une variable contenant un nodelist conditionné par rapport à un paramètre externe?

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par camboui
    On ne peut pas faire de "if" ou "choose" à l'interieur du select=""?
    Non.
    Citation Envoyé par camboui
    Donc, il n'est pas possible d'avoir une variable contenant un nodelist conditionné par rapport à un paramètre externe?
    De toute façon, l'emploi de xsl:value-of dans un xsl:variable ne te donnera jamais de noeuds, mais le contenu textuel de ces noeuds. C'est obligatoire, si la variable doit contenir un nodelist, il ne peut être défini que par une expression XPath dans l'attribut select. Il faut donc que tu organises ton code différemment.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    Merci.
    Et bonne année 2006!

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

Discussions similaires

  1. [XSLT] comment recuperer la valeur d'un noeud dans une variable
    Par enzostar dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/04/2010, 23h03
  2. [XSLT] liste d'élements dans une variable de type array ?
    Par r-zo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 15/01/2010, 09h16
  3. [XSLT]mettre un noeud dans une variable
    Par Morbo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 15/06/2007, 21h28
  4. [XSLT] mettre une valeur d'un XML dans une variable ?
    Par xiii34 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/04/2007, 18h14
  5. [XSLT] Attribut dont le nom est stocké dans une variable ?
    Par Xfennec dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/03/2006, 11h20

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