[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
At 2012-05-10 13:25 +0100, henry human wrote:
You do not show how you are working with $factor and that affects the answer. You are passing a node in your old code.
If you need a node in the function, then the ways are:
In XSLT 1:
In XSLT 2:
If you need only the value to be passed then this works with both XSLT 1 and XSLT 2 by passing a temporary tree with the value:
The whole key is to put the choice inside the value of the parameter.
I hope this helps.
. . . . . . . . . Ken
Re: [xsl] use choose in call-templates not possble
Subject: Re: [xsl] use choose in call-templates not possble From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 10 May 2012 08:33:36 -0400 |
At 2012-05-10 13:25 +0100, henry human wrote:
<xsl:variable name="Fcfactor"> <xsl:call-template name="translateDcml"> <xsl:choose> <xsl:when test="FCDecimalPlace != ''">
<xsl:with-param name="factor" select="FCDecimalPlace"/>
<xsl:otherwise> <xsl:with-param name="factor" select="LCDecimalPlace"/> </xsl:otherwise> </xsl:choose> </xsl:call-template> </xsl:variable>
You do not show how you are working with $factor and that affects the answer. You are passing a node in your old code.
If you need a node in the function, then the ways are:
In XSLT 1:
<xsl:variable name="Fcfactor"> <xsl:choose> <xsl:when test="FCDecimalPlace != ''"> <xsl:call-template name="translateDcml"> <xsl:with-param name="factor" select="FCDecimalPlace"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="translateDcml"> <xsl:with-param name="factor" select="LCDecimalPlace"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable>
In XSLT 2:
<xsl:variable name="Fcfactor"> <xsl:call-template name="translateDcml"> <xsl:with-param name="factor" as="node()"> <xsl:choose> <xsl:when test="FCDecimalPlace != ''"> <xsl:sequence select="FCDecimalPlace"/> </xsl:when> <xsl:otherwise> <xsl:sequence select="LCDecimalPlace"/> </xsl:otherwise> </xsl:choose> </xsl:with-param> </xsl:call-template> </xsl:variable>
If you need only the value to be passed then this works with both XSLT 1 and XSLT 2 by passing a temporary tree with the value:
<xsl:variable name="Fcfactor"> <xsl:call-template name="translateDcml"> <xsl:with-param name="factor"> <xsl:choose> <xsl:when test="FCDecimalPlace != ''"> <xsl:value-of select="FCDecimalPlace"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="LCDecimalPlace"/> </xsl:otherwise> </xsl:choose> </xsl:with-param> </xsl:call-template> </xsl:variable>
The whole key is to put the choice inside the value of the parameter.
I hope this helps.
. . . . . . . . . Ken
-- Public XSLT, XSL-FO, UBL and code list classes in Europe -- Oct 2012 Contact us for world-wide XML consulting and instructor-led training Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] use choose in call-templa, Wendell Piez | Thread | RE: [xsl] use choose in call-templa, Jakub Malý |
Re: [xsl] use choose in call-templa, TW | Date | RE: [xsl] use choose in call-templa, Jakub Malý |
Month |