Re: [xsl] "fetching" elements by name with a tokenized list of names

Subject: Re: [xsl] "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: [xsl] "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

Current Thread