En option paramètres lors de l'appel d'une feuille de style XSL modèle
Est-il l'appeler une feuille de style XSL modèle avec des paramètres optionnels?
Par exemple:
<xsl:call-template name="test">
<xsl:with-param name="foo" select="'fooValue'" />
<xsl:with-param name="bar" select="'barValue'" />
</xsl:call-template>
Et de la définition de modèle:
<xsl:template name="foo">
<xsl:param name="foo" select="$foo" />
<xsl:param name="bar" select="$bar" />
<xsl:param name="baz" select="$baz" />
...possibly more params...
</xsl:template>
Ce code me donne une erreur "Expression d'erreur: la variable 'baz' a pas trouvé." Est-il possible de laisser de côté la "baz" déclaration?
Merci,
Henry
Vous devez vous connecter pour publier un commentaire.
Vous êtes à l'aide de la
xsl:param
syntaxe erronée.Faire ceci à la place:
Param prend la valeur du paramètre passé à l'aide de la
xsl:with-param
qui correspond au nom de laxsl:param
déclaration. Si aucun n'est fourni, il prend la valeur de l'select
attribut plein de XPath.Plus de détails peuvent être trouvés sur W3School son entrée sur param.
Personnellement, je préfère faire les suivants:
J'aime utiliser explicitement avec le texte afin que je puisse utiliser XPath sur mon XSL faire des recherches. Il est venu dans la pratique de nombreuses fois de faire une analyse sur une feuille de style XSL je n'ai pas d'écrire ou de ne m'en souviens pas.
La valeur en sélectionner une partie de l'élément param sera utilisée que si vous ne passez pas le paramètre.
Vous obtenez une erreur car la variable ou le paramètre $baz n'existe pas encore. Il devrait être définie au plus haut niveau pour que cela fonctionne dans votre exemple, ce qui n'est pas ce que tu voulais de toute façon.
Aussi, si vous êtes de passage à une valeur littérale à un modèle, vous devez passer comme ça.
S'il vous plaît ne pas utiliser
<xsl:param .../>
si vous n'en avez pas besoin pour augmenter la lisibilité.Cela fonctionne très bien: