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 20:40:48 -0800 (PST) |
> But again, if you can tell us how you construct > $levelreference, we might be able to suggest an even > > better solution, preventing use of fragments at all > perhaps... $levelreference is an RTF which I populated by using xsl:for-each on a key. My XML is very complex so I am using lots of keys to get the appropriate result. Again also I can see some performance degradation because of usage of lost of xsl:for-each. Anyway I will look into the performance later. Thanks for your help. regards, Ranjan --- Geert Josten <Geert.Josten@xxxxxxxxxxx> wrote: > > 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. > > Taking a more close look at what you mailed earlier, > I noticed the definition of xsl:key. Though, > the definition of $levelreference is missing, but I > assume that is a reference to a document fragment. > > Yes, the problem in your case is that you switch > context from input doc to fragment with your outer > for-each loop. Doing so makes the key work on the > fragment instead of the input doc. Your lines > above are on the right track... > > I assume that the key you specified is supposed to > work on the input doc rather than the fragment. > Well, you could use the following trick to switch > back context to the input doc: > > <xsl:variable name="current" select="." /> > > <!-- outer loop --> > <xsl:for-each select="node-set($levelreference)/*"> > <xsl:variable name="id" select="@levelref" /> > > <!-- here comes the trick :P --> > <xsl:for-each select="$current"> > > <!-- compressed inner loop to one value-of > statement --> > <xsl:value-of select="key('professionlevelkey', > $id)/@value" /> > > </xsl:for-each> > > </xsl:for-each> > > But again, if you can tell us how you construct > $levelreference, we might be able to suggest an even > > better solution, preventing use of fragments at all > perhaps... > > Cheers > > __________________________________ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Usage of key inside a for, Geert Josten | Thread | Re: [xsl] Usage of key inside a for, David Carlisle |
RE: [xsl] for-each and summing base, Michael Kay | Date | Re: [xsl] use XSLT or XQuery in Sax, Raffaele Sena |
Month |