Subject: Re: [xsl] Default values of template parameters From: David Carlisle <davidc@xxxxxxxxx> Date: Tue, 1 Aug 2006 12:12:53 +0100 |
<xsl:param name="linestyle" select="Solid" /> that selects the <Solid> child element of the current node. I suspect taht you want a default of <xsl:param name="linestyle" select="'Solid'" /> <xsl:variable name="UnusedParamsA" select="0,0,1,300," /> that's an XPath1 syntax error, your stylesheet shouldn't compile, I suspect that you again want <xsl:variable name="UnusedParamsA" select="'0,0,1,300,'" /> Is there a way to pass the parameter if the tested attribute exists and not pass anything, not even an empty string, if it does not? only by putting the call-template inside each branch of an xsl:choose, and passing the param in one case and not in the other. I would however write <xsl:with-param name="linestyle" > <xsl:choose> <!-- if a linestyle is specified...--> <xsl:when test="[@name =$MatchedEntityName]/@linestyle"> ^^^ again that is a syntax error you can't start an xpath with [ <!-- ... pass it's value, otherwise... --> <xsl:value-of select="$MatchedEntityName]/@linestyle " /> </xsl:when> <xsl:otherwise> <!-- pass nothing. --> <xsl:value-of select="''"/> </xsl:otherwise> </xsl:choose> </xsl:with-param> as <xsl:with-param name="linestyle" select=*[@name=$MatchedEntityName]/@linestyle"/> then you are always passing $linestyle either with the correct value or with an empty node set, so your template can go (I'm assuming you want a * at the start of taht xpath) <xsl:choose> <xsl:when test="$linestyle"><xsl:value-of select="$linestyle"/></xsl:when> <xsl:otherwise>Solid</xsl:otherwsie> David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Default values of template pa, Julian Cox | Thread | RE: [xsl] Default values of templat, Michael Kay |
Re: [xsl] Sibling axis and as="elem, David Carlisle | Date | Re: [xsl] Sibling axis and as="elem, andrew welch |
Month |