I can't remember whether we already mentioned that you can capture a
template's results into a variable, which can also help avoid extensions:
<xsl:variable name="foo">
<xsl:apply-template ...>
</xsl:variable>
Of course that doesn't return the original nodes, just the result
generated by the template. And in XSLT 1.0, if you want to further process
the result you'll need to use the exslt nodeset function to make the
Result Tree Fragment accessible that way. But this, combined with named
templates, can sometimes be persuaded to substitute for things you'd
otherwise need an extension for.
______________________________________
"... Three things see no end: A loop with exit code done wrong,
A semaphore untested, And the change that comes along. ..."
-- "Threes" Rev 1.1 - Duane Elms / Leslie Fish (
http://www.ovff.org/pegasus/songs/threes-rev-11.html)