Hi everyone, and happy new year's!
Let's say I have a variable that contains a set of nodes:
<xsl:variable name="nodes" select="//(foo|bar|baz)"/>
In XPath 3.0, I can apply a template directly to this node-set variable (very cool!):
<xsl:template match="$nodes">
However, what's the best way to use this node-set variable as a predicate filter? For example, let's say I wanted to select every preceding sibling node directly before each node in the variable:
<xsl:template match="preceding-sibling::node()[1][. intersect $nodes]">
The "interesect" operator works, but it's not intuitive. Is there a simple Boolean operator that indicates whether a given node exists in a set of nodes? ([. = $nodes] compares text evaluations of the nodes, not the nodes themselves.)
I hope the answer is not obvious, because I spent longer than I'd like to admit trying to figure this out. :)
- Chris