xsl-list
[Top] [All Lists]

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

2003-07-10 14:08:27
So what you are asking for is an XPath expression that will select all the 
unique <item> nodes (as distinguished by the values of their child nodes), 
correct?

Here is an XML document based on my understanding of your question:
Based on this, you want an expression which returns the first, second, and 
third <item> nodes, and not the fourth and fifth because they are identical to 
one of the first three. Is that right?

<?xml version="1.0" encoding="UTF-8" ?>
<items>
  <item>
    <name>truck</name>
    <type>silverado</type>
    <status>on</status>
  </item>
  <item>
    <name>truck</name>
    <type>silverado</type>
    <status>off</status>
  </item>
  <item>
    <name>truck</name>
    <type>ranger</type>
    <status>on</status>
  </item>
  <item>
    <name>truck</name>
    <type>silverado</type>
    <status>on</status>
  </item>
  <item>
    <name>truck</name>
    <type>silverado</type>
    <status>off</status>
  </item>
</items>
-- 
Charles Knell
cknell(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     "Barak" <barak(_at_)voyager(_dot_)net>
Sent:     Thu, 10 Jul 2003 16:37:25 -0400
To:       <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Subject:  RE: [xsl] Using not(...a nd ... ) to select nodes

I'm sorry, I wasn't thinking/typing clearly.  There's three that are of
concern.  There are actually more, but I need to select nodes based on
those three.

Chris



-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
cknell(_at_)onebox(_dot_)com
Sent: Thursday, July 10, 2003 4:06 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Using not(...a nd ... ) to select nodes


You say that each "item" node has three child nodes, yet your 
list of items shows four values for each item. Which is correct?
-- 
Charles Knell
cknell(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     "Barak" <barak(_at_)voyager(_dot_)net>
Sent:     Thu, 10 Jul 2003 15:43:01 -0400
To:       <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Subject:  [xsl] Using not(...a nd ... ) to select nodes

Hello!

I'm fairly new to XSLT and have been trhown in the deep end here.  :p

I have a problem I've been beating my head against a wall 
over for a couple of days, so now that it's good and bloody 
I've found this mailing list.  

In a nutshell, I have "item" nodes that have three sub nodes: 
name, type and status. 

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.

Chris



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




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






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




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