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