[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Match nodes with a range of values


Subject: RE: [xsl] 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 &lt;= $n/@timebeg or 
                                            @timeget &gt;= $n/@timeend)]"/>
</xsl:for-each>

Michael Kay


Current Thread
Keywords