replace ($X except $Y) by
$X[not(some $y in $Y satisfies deep-equal(., $y))]
It's likely to be an expensive operation.
Michael Kay
Saxonica
On 28/12/2011 23:17, Costello, Roger L. wrote:
Hi Folks,
How do I do set subtraction where some of the nodes in the two sets may be
copies (not originals)?
Please allow me to explain.
Consider this XML document:
<Test>
<A/>
<B/>
<C/>
</Test>
Set<Test> as the context node.
This operation:
(A, B,, C) except (B, C)
returns:
(A)
Nice.
Now, make a copy of B and store it into a variable:
<xsl:variable name="B" as="element(B)">
<xsl:copy-of select="B" />
</xsl:variable>
Run the same operation, but using the variable:
(A, B, C) except ($B, C)
Returns:
(A, B)
Ouch!
I don't want that behavior. I want:
(A, B, C) except ($B, C)
to return:
(A)
How do I achieve the behavior I desire?
That is, how do I do set subtraction where some of the nodes in the two sets
may be copies?
/Roger
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--