Subject: Re: "fetching" elements by name with a tokenized list of names
From: Georges Schmitz <georges.schmitz@xxxxxxxxx>
Date: Fri, 16 Feb 2007 11:30:54 +0100
|
Oh, that hurts! Of course, now as you mention it. Very basic thing I
missed there (grrr).
Thanks a lot,
Georges
Michael Kay wrote:
> The context changes inside a predicate, so "." inside [] is not normally the
> same thing as "." outside the []. "*[name()=.]" selects elements whose name
> is the same as their string-value.
>
> Michael Kay
> http://www.saxonica.com/
>
>
>
>> -----Original Message-----
>> From: Georges Schmitz [mailto:georges.schmitz@xxxxxxxxx]
>> Sent: 16 February 2007 09:47
>> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>> Subject: "fetching" elements by name with a tokenized
>> list of names
>>
>> I don't have a clue why this one works:
>>
>> <xsl:for-each select="tokenize($extract.element,';')">
>> <xsl:variable name="name" select="."/>
>> <xsl:copy-of select="$annex/*[name()=$name]"/>
>> </xsl:for-each>
>>
>> and this one not:
>>
>> <xsl:for-each select="tokenize($extract.element,';')">
>> <xsl:copy-of select="$annex/*[name()=.]"/>
>> </xsl:for-each>
>>
>> tokenize() delivers a sequence of string tokens, so what
>> makes the difference between referring to a string token in
>> <xsl:for-each> by "."
>> directly (the latter) or by using an intermediary variable
>> (the first case)?
>>
>> Thanks for clearing this to me,
>> Georges
|