Je trouve qu'il est impossible d'utiliser with-param pour travailler avec apply-templates. À titre d'exemple, j'ai piraté les exemples donnés dans w3schools.Pourquoi ne puis-je pas obtenir les paramètres pour travailler avec apply-templates dans XSL?
xsl
<xsl:template match="/">
<xsl:apply-templates>
<xsl:with-param name="test" select="'has this parameter been passed?'"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="cd">
<xsl:param name="test"></xsl:param>
parameter:
<xsl:value-of select="$test"></xsl:value-of>
</xsl:template>
xml
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>
(Si tout va bien), vous verrez que le paramètre de test n'est pas passé au modèle de cd. Je peux le faire fonctionner quand j'utilise un template d'appel, mais pas des templates d'application. Que se passe-t-il? J'utilise XSL 1.0. S'il vous plaît ignorer le fait que je passe un paramètre codé en dur - ce n'est qu'un exemple.
oui - cela fonctionne, mais pourquoi l'exemple original ne fonctionne pas? – Goran
Ahh. Mais pourquoi le paramètre n'est-il pas transmis à cd? – darasd
Le catalogue est la racine ici, donc l'exemple original devrait fonctionner. Et c'est le cas avec libXSLT et Opera. – vartec