Subject: Re: [xsl] A smarter choose operation XSL 1.1 From: DavePawson <davep@xxxxxxxxxxxxx> Date: Thu, 11 Jun 2009 09:05:20 +0100 |
select="(1.0, 1.7, 2.25, 3.0)[count(($opt.one, $opt.two, $opt.three)[.])+1]"
The strange predicate [.] selects items in the sequence that are true.
Would someone expand on this oddity please? I'm guessing 'true' in this case is the xslt version of 'true'... I.e. non-empty?
How does that relate to ($opt.one, $opt.two, $opt.three)[.] please?
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
-----Original Message-----
From: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] Sent: 10 June 2009 22:20
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] A smarter choose operation XSL 1.1
I have 3 optional param values that are either true/false. I need a solution which will return 4 different numbers when:
1) all param values are true 2) two param values are true 3) one param value is true 4) none are true
I was about to write one big choose and then thought maybe there is a more efficient way of doing it. So any ideas on this one? For sake of discussion, here is a mock up of the template and param values I
have:
<xsl:template name="test"> <xsl:param name="optional.one" select="true()" /> <xsl:param name="optional.two" select="true()" /> <xsl:param name="optional.three" select="true()" />
<!-- Return:
When All, return 3.00 When Two, return 2.25 When One, return 1.70 When Zero, return 1.00 -->
</xsl:template/>
Thanks for the help!
Karl..
-- Dave Pawson XSLT XSL-FO FAQ. http://www.dpawson.co.uk
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] A smarter choose operatio, Michael Kay | Thread | Re: [xsl] A smarter choose operatio, David Carlisle |
RE: [xsl] A smarter choose operatio, Michael Kay | Date | Re: [xsl] A smarter choose operatio, David Carlisle |
Month |