RE: [xsl] Usage of key inside a for loop of a RTF does not work properly

Subject: RE: [xsl] Usage of key inside a for loop of a RTF does not work properly
From: "Ranjan K. Baisak" <ranjanbaisak@xxxxxxxxx>
Date: Wed, 5 Jan 2005 02:11:57 -0800 (PST)
>If the context node is in an RTF, it will select
nodes in the 
RTF.


I think I am  quite clear now. SO I can think that As
I am inside for loop of RTF so key selects nodes in
RTF which does not produce any result.

> If
> you want to select nodes in a different document,
> first make that document
> current. You can do this using xsl:for-each in XSLT
> 1.0, or in 2.0 by using
> $doc/key('k', val).
So I have to use a xsl:for-each instead of key for
XSLT1.0?

regards,
Ranjan
--- Michael Kay <mike@xxxxxxxxxxxx> wrote:

> The key() function selects nodes in the document
> that contains the context
> node. If the context node is in an RTF, it will
> select nodes in the RTF. If
> you want to select nodes in a different document,
> first make that document
> current. You can do this using xsl:for-each in XSLT
> 1.0, or in 2.0 by using
> $doc/key('k', val).
> 
> Michael Kay
> http://www.saxonica.com/ 
> 
> > -----Original Message-----
> > From: Ranjan K. Baisak
> [mailto:ranjanbaisak@xxxxxxxxx] 
> > Sent: 05 January 2005 07:12
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] Usage of key inside a for loop of a
> RTF does 
> > not work properly
> > 
> > <xsl:for-each
> > select="exslt:node-set($leverreference)/*">
> > 		<xsl:variable name="referid"
> select="@levelref"/>
> > 		
> > 		<xsl:for-each
> > select="key('professionlevelkey','$referid')">
> > 			<xsl:value-of select="@name"/>
> > 		</xsl:for-each>
> > 	</xsl:for-each>
> > The output of above does not produce any output.
> > The definition of professionlevelkey key is
> <xsl:key 
> > name="professionlevelkey"
> match="//professionlevel"
> > use="@id"/>
> > 
> > But if I use
> > <xsl:for-each
> > select="exslt:node-set($leverreference)/*">
> > 		<xsl:variable name="referid"
> select="@levelref"/>
> > 		
> > 		<xsl:for-each select="//professionlevel">
> > <xsl:if test="$referid=@id">
> > 			<xsl:value-of select="@name"/>
> > </xsl:if>
> > 		</xsl:for-each>
> > 	</xsl:for-each>
> > It gives correct  output.
> > Weird....not sure whatz wrong in usage of key
> inside
> > RTF..
> > 
> > regards,
> > Ranjan
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam
> protection around 
> > http://mail.yahoo.com 
> 
> 



	
		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - You care about security. So do we. 
http://promotions.yahoo.com/new_mail

Current Thread