|
Subject: Re: decode( source,'if-one','1', ... , 'if-n','n','default') From: James Clark <jjc@xxxxxxxxxx> Date: Sun, 03 Oct 1999 19:21:53 +0700 |
"Clark C. Evans" wrote:
>
> All,
>
> A decode like function would be wonderful
> to augment substring and other string-minipulation
> functions. For instance, date conversion:
>
> <xsl:value-of select="decode((substring('19990912',4,2),1,'Jan',2,'Feb',
> 3,'Mar',4,'Apr',5,'May',6,'Jun',7,'Jul',8,'Aug',
> 9,'Sep',10,'Oct',11,'Nov',12,'Dec','Invalid-Month')/>
>
> => Sep
>
> Any ideas how to do something like this? (I'm using <xsl:choose/> )
One way is to create a file month.xml like this:
<months>
<month>Jan</month>
<month>Feb</month>
<month>Mar</month>
<month>Apr</month>
<month>May</month>
<month>Jun</month>
<month>Jul</month>
<month>Aug</month>
<month>Sep</month>
<month>Oct</month>
<month>Nov</month>
<month>Dec</month>
</months>
and then use
<xsl:value-of
select="document('month.xml')
/months/month[number(substring('19991003',5,2))]"/>
This approach also makes it easy to localize your XSL stylesheet for
different languages.
A less general approach is something like this:
<xsl:template name="month">
<xsl:param name="n" select="0"/>
<xsl:value-of select="substring('JFMAMJJASOND',$n,1)"/>
<xsl:value-of select="substring('aeapauuuecoe',$n,1)"/>
<xsl:value-of select="substring('nbrrynlgptvc',$n,1)"/>
</xsl:template>
James
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| decode( source,'if-one','1', ... , , Clark C. Evans | Thread | document scope difficulty (Was: de, Clark C. Evans |
| RE: select-distinct in for-each ?, Clark C. Evans | Date | XML Conference Tests..., John Markor |
| Month |