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 :

Call templates problème [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Par défaut Call templates problème
    Bonjour,

    je ne comprend pas le fonctionnement de l'appel et la création de template avec paramètres, l'exemple ci desous ne fonctionne pas comme je le voudrais :


    Fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="ex.xslt"?>
    <annuaire>
      <personne name="VC">
      <nom>Victor condor</nom>
      </personne>
      <personne name="AR">
        <nom>Aurélien REINA</nom>
        </personne>
    </annuaire>

    FIchier xslt:
    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
    <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version="1.0">
         <xsl:output method="text"/>
         <xsl:template match="annuaire/personne">
          <xsl:apply-templates select="personne"/>
    	<xsl:call-template name="printName">
    	  <xsl:with-param name="a" select="VC" />
    	  <xsl:with-param name="b"/>
          </xsl:call-template>
    </xsl:template>
    <!--fonction-->
      <xsl:template name="printName">
          <xsl:param name="a"/>
          <xsl:param name="b" select="nom" /> 
          <xsl:choose>   
          <xsl:when test="@name = $a"> 
          <xsl:value-of select="$b"/>    
          </xsl:when>
          <xsl:otherwise>
          <xsl:text>N/A</xsl:text>
          </xsl:otherwise>
          </xsl:choose> 
        </xsl:template>
    </xsl:stylesheet>


    J'obtiens le résultat suivant apres processing :

    N/A
    N/A
    Je devrais voir affiché "Victor condor" et c'est tout non? En tout cas c'est ce que je voudrais
    Merci de m'aider

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Erreur de XPath :

    sélectionne tous les fils <VC>.
    Il n'y a aucun élément <VC> dans le document. Donc le select sélectionne un ensemble vide.

    Donc, en paramètre a, ton template reçoit un ensemble vide.

    L'ensemble vide n'est jamais égal à quoi que ce soit, donc une comparaison d'égalité avec lui ne peut jamais être vraie.

    Tu pensais sans doute à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:with-param name="a" select="'VC'" />
    Ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:with-param name="a">VC</xsl:with-param>
    Auquel cas le paramètre a sera la string 'VC'. Et ça fera ce que tu attends.

    Ici l'erreur n'a rien à voir avec les call template.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Par défaut résolu
    merci beaucoup pour ton aide!

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

Discussions similaires

  1. [XSL]Valeur d'un call-template en paramètre with-param
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 20/03/2006, 14h45
  2. [template] problème de passage de paramètres
    Par vinny_the_true dans le forum C++
    Réponses: 2
    Dernier message: 14/12/2005, 01h15
  3. [DLL/classe template] problème de link
    Par Bob.Killer dans le forum C++
    Réponses: 7
    Dernier message: 31/08/2005, 18h56
  4. [XSLT] Différence entre apply-templates et call-template
    Par Cpt.FLAM dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/04/2005, 18h47
  5. différence call-template et apply-templates
    Par mousstik dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 08/11/2004, 12h28

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