Subject: Re: [xsl] Hash / Translation Tables (the right way) From: Andrew Welch <andrew.j.welch@xxxxxxxxx> Date: Mon, 26 Sep 2011 10:03:59 +0100 |
On 25 September 2011 22:28, Hank Ratzesberger <hankr@xxxxxxxx> wrote: > Hi > > I know that XSLT code can be a verbose, but often enough I > find that it's because I'm not using the language as > intended, so I'm asking for your thoughts. > > I'm having some problems with constructs like hash tables or > indexes, which are quick in other languages but presently I > am using some brute force with. E.G. > > > <xsl:template name="month-of"> > <xsl:param name="mon"/> > <xsl:choose> > <xsl:when test="lower-case($mon) = 'jan'"> > <xsl:value-of select="'01'"/> > </xsl:when> > <xsl:when test="lower-case($mon) = 'feb'"> > <xsl:value-of select="'02'"/> > </xsl:when> > <xsl:when test="lower-case($mon) = 'mar'"> > <xsl:value-of select="'03'"/> > </xsl:when> > > It seems there must be a way to accomplish this with > a simple sequence. Months of the year, days of the > week, and other one to one translations from the > textual to ordinal or vice versa. The simple sequence way is: ('jan', 'feb', 'mar' ....)[number($mon)] ...and if the param $mon was typed as a number already you could drop the number() function. In practice though, you wouldn't want to repeatedly create the sequence, and you'd want to check the $mon param is between 1 and 12, so you would need to separate it out a bit. -- Andrew Welch http://andrewjwelch.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Hash / Translation Tables, Dimitre Novatchev | Thread | [xsl] change xslt processing order, Navin Patel |
RE: [xsl] Client-side XSLT, Tom T | Date | [xsl] change xslt processing order, Navin Patel |
Month |