Re: [xsl] Using not(...a nd ... ) to select nodes

Subject: Re: [xsl] Using not(...a nd ... ) to select nodes
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 10 Jul 2003 16:11:19 -0400
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 hope that works for you--

Cheers,
Wendell

At 03:43 PM 7/10/2003, you wrote:
I'm trying to create a node set that only contains different nodes.  The
problem I'm running into is I seem to be losing nodes that I shouldn't.

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.


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread