This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Cascading Attributes?
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: Re: [xsl] Cascading Attributes?
- From: "Michael Beddow" <mbnospam at mbeddow dot net>
- Date: Fri, 25 May 2001 17:51:20 +0100
- References: <F991D4265D6AD4119A1900508BC98E572FD62A@NTEXCL01>
- Reply-To: xsl-list at lists dot mulberrytech dot com
You seem to be confusing <xsl:param> with <xsl:variable>
There are some other problems with what you're trying as well, but if
you consult a reference and clarify that distinction first (as well as
looking into how to call a named template) you'll be on your way
Michael
-------------------------------------------------
Michael Beddow
http://www.mbeddow.net/
----- Original Message -----
From: "William Bagby" <williamb@adone.com>
To: "XSL Mailing List (E-mail)" <xsl-list@lists.mulberrytech.com>
Sent: Friday, May 25, 2001 4:50 PM
Subject: [xsl] Cascading Attributes?
> I have an XML element <text> with an optional attribute @class. In
the
> template matching this element, I'd like to have a variable $class
which
> takes one of the following values, with lower number taking
precedence:
>
> 1. a param called class passed to the template using <with-param>
> 2. optional attribute @class if it is defined
> 3. the string "none"
>
> In other words, if my XSL is:
>
> <xsl:apply-templates select="text"/>
>
> I want $class to be text/@class if it is defined, otherwise "none".
But if
> my XSL is:
>
> <xsl:variable name="myvar">myclass</xsl:variable>
> <xsl:apply-templates select="text">
> <xsl:with-param name="myvar"/>
> </xsl:apply-templates>
>
> I want $class to be "myclass", regardless of whether or not @class is
> defined.
>
> I tried the following:
>
> <xsl:template match="text">
> <xsl:param name="class">
> <xsl:choose>
> <xsl:when test="@class"><xsl:value-of
> select="@class"/></xsl:when>
> <xsl:otherwise>none</xsl:otherwise>
> </xsl:choose>
> </xsl:param>
> <a href="{@href}" class="{$class}"><xsl:value-of select="."/></a>
> </xsl:template>
>
> But it doesn't work. I'm sure I could probably figure it out, but I'm
> looking for something elegant, or at least something easy to read.
Maybe
> what I really want to know is why my XSL doesn't work, which is really
> another way of asking, "How does <xsl:param> work?"
>
>
> William Bagby.
>
>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list