![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >xsl-list Archive Home >Recent entries >Thread Prev - [xsl] Default values of template parameters [Thread Next] Re: [xsl] Default values of template parametersTo: Date: 8/1/2006 11:13:00 AM <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 | ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
