RE: [xsl] Function within an expression

Subject: RE: [xsl] Function within an expression
From: "Jim Neff" <jneff@xxxxxxxxxxxxxxx>
Date: Wed, 5 Jan 2005 13:49:49 -0500
Yes, I see now, so I should do:

 substring(current(), 1, 3)

 in order to make these two methods result the same?

--Jim


-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx] 
Sent: Wednesday, January 05, 2005 1:50 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Function within an expression

> 
> It should be possible to do like your example (I think :) but it's 
> definitively possible to create a "local" variable related to current
> node:
> 
> <xsl:for-each select="$lines">
>    <xsl:variable name="type" select="substring(., 1, 3)"/>
>    <record>
>       <xsl:apply-templates select="$field_definitions/*[@type
> = $type]"/>
>      ...
>    </record/>
> </xsl:for-each>
> 

Yes, you can do this, and you can also do

<xsl:for-each select="$lines">
>    <record>
>       <xsl:apply-templates select="$field_definitions/*[@type =
substring(., 1, 3)]"/>
>      ...
>    </record/>
> </xsl:for-each>

but they aren't the same thing, because the meaning of "." within a
predicate is different from its meaning outside the predicate.

Michael Kay
http://www.saxonica.com/

Current Thread