[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: A smarter choose operation XSL 1.1
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. 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: 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..
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|