Subject: RE: Function within an expression
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 5 Jan 2005 18:50:10 -0000
|
> 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/
|