In XSLT 2.0 this is supported -- just capture in an <xsl:variable/>
the result of the first transformation, then apply templates (possibly with different mode) to the top child (or any other descendents) of the xml document/fragment contained in the xsl:variable.
In XSLT 1.0 one has to use the xxx:node-set() extension, which converts the contents of the xsl:variable (which is of type RTF -- Result Tree Fragment) into a regular XML document/fragment.
This extension-function is quite standardized by EXSLT -- the "most standard" and widely implemented library of XSLT 1.0 extension functions.