Re: [xsl] XSL For-Each Help!

Subject: Re: [xsl] XSL For-Each Help!
From: Rusty Morton <rusty_morton@xxxxxxxxx>
Date: Tue, 18 Jul 2006 09:00:34 -0700 (PDT)
Thanks Wendell!!! Your my hero!!

It is always the 'simmple errors' that cause me the
most problems!

..and yes - i absolutely get the concept, now that it
is working of course. Again, thanks for your help

-R


--- Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> wrote:

> Rusty,
> 
> These turned out to be pretty simple errors to make
> (and fix):
> 
> At 07:06 PM 7/17/2006, you wrote:
> ><xsl:key name="itemsbydistributor"
> >match="ItemAsSold[CanOrderFlag='true'][CanShipFlag
> =
> >'true']" use="DistributorCode"/>
> 
> In your data (as posted yesterday), the elements in
> the predicates 
> are CanOrder and CanShip, without "Flag" appended.
> 
> >--then down within the XSL file i have----:
> ><xsl:variable name="distributorVal">
> ><!-- only process distributorCodes if canShip and
> >canOrder are both true -->
> >    <xsl:for-each
>
>select="//DistributorCode[generate-id(parent::ItemAsSold)=generate-id(key('itemsbydistributor',current())[1])
> >]">
> 
> Here, you want
> generate-id(key('itemsbydistributor',.)[1], no 
> "current()". If that was my error, I apologize. :-)
> (If this is a 
> global variable, current() is probably returning the
> root node. You 
> want the value of the DistributorCode.
> 
> >         <xsl:value-ofselect="DistributorCode"/>
> 
> Here you want value-of select=".", since the context
> is already the 
> DistributorCode.
> 
> Alternatively, you could select
>  
>
//ItemAsSold[generate-id()=generate-id(key('itemsbydistributor',DistributorCode)[1])]
> 
> and then get the value of its DistributorCode.
> 
> I hope that helps.
> 
> Do you get the concept, anyhow?
> 
> Cheers,
> Wendell

Current Thread