xsl-list
[Top] [All Lists]

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

2003-07-10 13:11:19
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(_at_)mulberrytech(_dot_)com
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