"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[(_at_)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[(_at_)id=1][@timebeg <= $n/@timebeg or
@timeget >= $n/@timeend)]"/>
</xsl:for-each>
Michael Kay