Re: [xsl] xsl:param and attribute testing

Subject: Re: [xsl] xsl:param and attribute testing
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Mon, 29 Jan 2001 21:19:08 -0800 (PST)
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


Current Thread