How am I generating this "copy", in other words? Should I, for
example, be using the new temporary tree functionality? Within the
context of a variable? Something else?
Basically:
<xsl:template match="/">
<xsl:variable name="temp">
<xsl:apply-templates select="." mode="phase-1"
</xsl:variable>
<xsl:apply-templates select="$temp" mode="phase-2"/>
</xsl:template>
So you're doing a two-phase transformation, with $temp holding the output of
the first phase, which acts as the input to the second phase. You don't have
to use different modes, but it makes things clearer.
Michael Kay