Re: [xsl] xtvd grouping problem (I think)

Subject: Re: [xsl] xtvd grouping problem (I think)
From: Steve <subsume@xxxxxxxxx>
Date: Fri, 8 Sep 2006 17:52:32 -0400
Oooh.

http://www.jenitennison.com/xslt/

On 9/8/06, Bob Portnell <simply.bobp@xxxxxxxxx> wrote:
That's cool. Thanks for trying, and have a fine weekend. I'm looking
at for-each-group and I might be ... on the road to somewhere...

Bob

On 9/8/06, Steve <subsume@xxxxxxxxx> wrote:
> Hah. Wouldn't it be easy if we could just push things into keepers
> lists? Unfortunately, not in XSL since variables created in a loop
> can't exist outside of that loop.
>
> This was a barrier for me. But then I learned about the key() function.
>
> Unfortunately, I'm not the best person on the list to teach such a
> thing. I tried to put together something but there are better docs
> online.
>
> -S
>
>
> On 9/8/06, Bob Portnell <simply.bobp@xxxxxxxxx> wrote:
> > Let me clarify a little. I already have my set of programs in a
> > variable... call it $hitSet. So that's cool. And the bit from the sort
> > on down I'd already worked out. Good and good.
> >
> > I need to get away from any looping based on program IDs. That's my
> > problem: program IDs are more fine-grained than my search item terms.
> > So I need to expand up, collecting up all the <schedule>s which have
> > the program IDs from $hitSet (and so representing each search item
> > discovery individually)
> >
> > In pseudocode, my vision is something like
> > for each member of schedule ( a long list)
> >     if this member's @program is found among the @ids in (hitSet list)
> >         push (this member into Keepers list)
> >
> > But I have no idea if that's possible in XSLT. I have a hunch it is,
> > and I'm just overlooking a very simple XPath function for the
> > assignment...
> >
> > Bob P
> > simply.bobp@xxxxxxxxx
> >
> >
> >
> > On 9/8/06, Steve <subsume@xxxxxxxxx> wrote:
> > > On 9/8/06, Bob Portnell <simply.bobp@xxxxxxxxx> wrote:
> > > >     for each search item
> > > >         find the set of programs which have that item
> > > >         convert this to the set of schedule items which have those programs
> > > >         for each in the schedule set
> > > >             sort by time
> > > >             report the show information.
> > >
> > > <xsl:for-each $progSet/items[@item=@search]/@prog>
> > >      <xsl:variable name="prog" select="@prog" />
> > >       <xsl:for-each $scheduleSet[@prog = $prog]/@prog>
> > >         <xsl:sort select="@time" />
> > >         <xsl:value-of select="@showInfo"
> > >       </xsl:for-each>
> > >    </xsl:for-each>
> > >
> > >
> > > > Given a variable $progSet which has a bunch of <programs> in it, how
> > > > do I define a $schedSet which has only <schedule> items containing
> > > > @program ids from $progSet?
> > > >
> > > > I've gotten as far as
> > > > <xsl:variable name="schedSet" select="//schedule[@program . . {sound
> > > > of screeching brakes}? />
> > >
> > > Pretty sure I touched on this above. Let me know.
> > >
> > > > Please excuse where I've strayed from proper XSLT vocabulary; I hope
> > > > my intent is clear enough despite such lapses of inexperience.
> > >
> > > No problemo. Was very well conveyed. =).
> > >
> > > -S

Current Thread