RE: [xsl] Function within an expression

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

Current Thread