This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: xsl:param and attribute testing
- To: ralvarez at dmtmedia dot com
- Subject: Re: [xsl] xsl:param and attribute testing
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Mon, 29 Jan 2001 21:19:08 -0800 (PST)
- Cc: xsl-list at lists dot mulberrytech dot com
- Reply-To: xsl-list at lists dot mulberrytech dot com
Reuel,
> <xsl:variable name="acount" select="count(Analyst/@id[text()=10
> or text()=103 or text()=998]) + 1" />
Attribute nodes do not have any children, so this test (@id[Text()=10])
will never return true. The test that will perform as you expected will
be:
@id[. = 10]
> Is there any way to pass the attributes 10, 103, and 998 (or any
other set
> of numbers) to the stylesheet using xsl:param?
Yes, you can pass parameters to a template from another template if you
specify xsl:with-param elements within the contents of the
xsl:apply-templates or xsl:call-template. The value of the @name
attribute of an xsl:param must be one of the values of the @name
attributes of an xsl:param of the template being called/applied.
It seems to me, that what you really want is to pass parameters into
your stylesheet ***externally***.
This can be done and is vendour-dependent. Typically, using DOM in your
script, you manipulate the nodes of your loaded stylesheet and change
the value of the @select attribute of an xsl:param or a xsl:variable.
Then you apply the transformation.
Dimitre Novatchev.
Reuel Alvarez wrote:
I'd like to be able to pass a parameter to my xsl stylesheet that will
count
nodes with specific attributes. For example, I'd like to count Analyst
elements whose analyst_id attributes are 10, 103, or 998 like so:
<xsl:template match="Analyst">
<xsl:variable name="acount" select="count(Analyst/@id[text()=10
or text()=103 or text()=998]) + 1" />
<xsl:value-of select="$acount" />
</xsl:template>
Is there any way to pass the attributes 10, 103, and 998 (or any other
set
of numbers) to the stylesheet using xsl:param? Assuming that I can do
that,
how can I specify that the nodes selected contain those parameters that
were
passed?
__________________________________________________
Get personalized email addresses from Yahoo! Mail - only $35
a year! http://personal.mail.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list