[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: key() now has 3 arguments ... right
You can use the three argument form there, but that is not semantically equivalent. It matches _every_ element if the key returns a node, and matches no element otherwise. To match nodes if they are returned by the key you need an expression using ancestor-or-self as I gave before or perhaps more directly:I would tend to write this as: <xsl:variable name="special" select="key('maindoc','Sal',$doc2)"/> <xsl:template match="*[. intersect $special]"/> In XSLT 3.0 you can write this match pattern as <xsl:template match="$special"/> which matches any node in the value of the global variable $special. I've come across a few use cases where it's better pre-evaluate all the "special" nodes in a global variable than to do the computation to test whether a node is "special" within the match pattern itself; it's obviously a performance trade-off. Michael Kay Saxonica
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|