Subject: RE: 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: 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/
|