Subject: RE: Match nodes with a range of values
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Thu, 15 Jul 2004 16:43:19 +0100
|
> "Select all nodes where current nodes timebeg falls between
> the timebeg and timeend of all event 1's".
You can do this in XPath 2 as
//node[every $n in //node[@id=1] satisfies
(@timebeg ge $n/@timebeg and @timebeg le $n/@timeend)]
You can't do general joins in XPath 1 (it's not relationally complete). The
nearest you can get is
<xsl:for-each select="//node">
<xsl:variable name="n" select="."/>
<xsl:copy-of select="$n[not(//node[@id=1][@timebeg <= $n/@timebeg or
@timeget >= $n/@timeend)]"/>
</xsl:for-each>
Michael Kay
|