Subject: RE: Using not(...a nd ... ) to select nodes
From: "Lars Huttar" <lars_huttar@xxxxxxx>
Date: Thu, 10 Jul 2003 16:47:55 -0500
|
Wendell,
This is something that's been fuzzy in my mind for a while...
In order for your code to work, current() in the select expression
of a for-each loop must refer to the <item> node currently being
tested for whether it gets selected, right?
If so, is this the way xsl:for-each / xpath work?
I realize that INSIDE the for-each, current() refers to the node
currently being processed, but is that also true in the select
expression of the for-each? Or does current() there refer to
the context node outside the for-each?
Thanks,
Lars
> Chris,
>
> Try
>
> select="items/item[not(preceding-sibling::*
> [name=current()/name and
> type = current()/type and
> status = current()/status])]"
>
> The problem with your statement is it's testing true if there no
> corresponding values on any preceding siblings, whereas you
> want it to be
> true only if there's a preceding sibling with all
> corresponding values.
I thought the same thing... but if that's the case I can't figure
out why he's getting only the second and third items. I would have
thought the first one would have been selected since it doesn't
have any preceding siblings.
Chris wrote:
>I'm using the following to select the nodes:
>
><xsl:for-each select="items/item[not(name = preceding-sibling::*/name
>and type = preceding-sibling::*/type and status =
>preceding-sibling::*/status)]">
>
>
>An example from the XML might be: truck,silverado,chevy,on
>truck,silverado,chevy,off truck,ranger,ford,on truck,silverado,chevy,on
>truck,silverado,chevy,off
>
> >From that I want to see the first three in a node set. However, what
>I'm getting are the second and third ones.
>
>Any suggestions would be much appreciated.
I think you probably need to do Muenchian grouping using a composite
key on name, type, and status.
See http://www.dpawson.co.uk/xsl/sect2/N4486.html
HTH,
Lars
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|
Lars Huttar - Thu, 10 Jul 2003 17:48:34 -0400 (EDT) <=
|
|