Wrox Programmer Forums
Go Back   Wrox Programmer Forums > XML > XSLT
| Search | Today's Posts | Mark Forums Read
XSLT General questions and answers about XSLT. For issues strictly specific to the book XSLT 1.1 Programmers Reference, please post to that forum instead.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the XSLT section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
  #1 (permalink)  
Old May 22nd, 2007, 08:33 AM
Authorized User
 
Join Date: Jul 2003
Location: , , United Kingdom.
Posts: 13
Thanks: 0
Thanked 0 Times in 0 Posts
Default Filtering out from a node set

How do I restrict a collection of data, excluding elements held by another node set?

Main XML Document
Code:
<premount row="14">
    <det_code>ABA</det_code>
</premount>
<premount row="21">
    <det_code>DAA</det_code>
</premount>
(further inside the document)

Code:
<result>
    <det_code>YTY</det_code>
    <cust_code>Customer A</cust_code>
</result>
<result>
    <det_code>DAA</det_code>
    <cust_code>Customer A</cust_code>
</result>
My failing XSL snippet
Code:
<xsl:for-each select="//result[cust_code='Customer A'][det_code=not(//premount/det_code)]">
(I'm expecting <premount row="21"> to be excluded)
Code:
</xsl:for-each>
I've tried:
Code:
[not(det_code=//premount/det_code)]
Code:
[det_code!=//premount/det_code]
Thanks in advance,
Carl

  #2 (permalink)  
Old May 22nd, 2007, 08:42 AM
mhkay's Avatar
Wrox Author
Points: 18,487, Level: 59
Points: 18,487, Level: 59 Points: 18,487, Level: 59 Points: 18,487, Level: 59
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Apr 2004
Location: Reading, Berks, United Kingdom.
Posts: 4,962
Thanks: 0
Thanked 292 Times in 287 Posts
Default

This one (which you said you tried) is correct:

[not(det_code=//premount/det_code)]



Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference


Similar Threads
Thread Thread Starter Forum Replies Last Post
XPath: set operation with a disjoint node set rich_unger XSLT 7 May 6th, 2008 09:24 AM
Expression must evaluate to a node-set. XMLUser XSLT 3 February 5th, 2008 01:27 PM
Converting String into Node-set dved XSLT 3 January 23rd, 2008 12:40 PM
node-set function Bernardo Pacheco XSLT 2 June 19th, 2006 10:45 AM
Problem using xsl:for-each on a exsl:node-set ballo XSLT 11 March 28th, 2006 10:47 AM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.