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 |