Subject: RE: [xsl] with-parameter? From: Jarno.Elovirta@xxxxxxxxx Date: Thu, 4 Sep 2003 13:38:35 +0300 |
Hi, > <!-- this template should be the "translation table" --> > <xsl:template name="component.name"> > <xsl:param name="cname" /> > <xsl:choose> > <xsl:when test="$cname='0000000001'"> > One( > <xsl:value-of select="$cname" /> > ) > </xsl:when> > <xsl:when test="$cname='0000000002'"> > Two( > <xsl:value-of select="$cname" /> > ) > </xsl:when> > <xsl:when test="$cname='0000000003'"> > Three( > <xsl:value-of select="$cname" /> > ) > </xsl:when> > <xsl:when test="$cname='0000000004'"> > Four( > <xsl:value-of select="$cname" /> > ) > </xsl:when> > <xsl:otherwise> > <xsl:value-of select="$cname" /> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > </xsl:stylesheet> [snip] > What I would expect, is that all '000000001' will be > substituted with 'One', and so on. But why do you have the "( <xsl:value-of select="$cname" /> )" in your stylesheet, then? Just use <xsl:when test="$cname='0000000001'">One</xsl:when> if you only want "One" > But doing all the above > with Xalan, IE, or Mozilla results in the following: > > One(0000000001)Two(0000000005) > Two(0000000002)Three(0000000006) > Four(0000000004)Three(0000000003) > 0000000007 Which is correct. What do you want? > I don't know how it may happen, that if I pass '0000000005', > it will print 'Two'? No, because you don't have a xsl:when that would match "0000000005", so the xsl:otherwise will be used and it will print out the cname parameter value. > Is this a bug, or normal behaviour? It's a bug in your stylesheet if the stylesheet doesn't generate what you could want it to generate. > However, if someone knows a better way to do this > "translation" of codes to descriptive text, please let me know. E.g. <xsl:template name="component.name"> <xsl:param name="cname" /> <xsl:choose> <xsl:when test="$lookup[@key = $cname]"> <xsl:value-of select="$lookup[@key = $cname]/@value"/> ( <xsl:value-of select="$cname"/>) </xsl:when> <xsl:otherwise> <xsl:value-of select="$cname"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:variable name="lookup" select="document('')/*/x:lookup/item" xmlns:x="x"/> <x:lookup xmlns:x="x"> <item key="0000000001" value="One" /> <item key="0000000002" value="Two" /> <item key="0000000003" value="Three" /> <item key="0000000004" value="Four" /> </x:lookup> Cheers, Jarno - Feindflug: Lagerhaft XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] with-parameter?, Michael Kay | Thread | [xsl] [Fwd: Re: Re: Using a variabl, Tim Müller-Seydlitz |
Re: [xsl] setting and returning var, M. David Peterson | Date | RE: [xsl] with-parameter?, Michael Kay |
Month |