Subject: RE: xslt processing XML file by applying multiple transformation
From: "Mark Lundquist" <ml@xxxxxxxxxxxxxx>
Date: Tue, 11 Jan 2005 20:41:10 -0800
|
> Hello,
> I have an XML document that i need to transform into
> another XML document. To do that, I need to first
> tranform the original XML document using one xsl file.
> The the output XML generated in the first translation,
> I need to again transform it to another XML using a
> second xsl file.
>
> If possible, I want to do this by using a single xsl
> file where i would somehow do the first translation
> and then pass the whole result document throught a
> second translation.
u betcha! In XSLT 2.0:
<xsl:template mode="pass1" match="/">
.
.
</xsl:template>
<xsl:template mode="pass2" match="/">
.
.
</xsl:template>
<xsl:variable name="pass1-result">
<xsl:apply-templates mode="pass1" select="/" />
</xsl:variable>
<xsl:template match="/">
<!-- see note below -->
<xsl:apply-templates
mode="pass2"
select="$pass1-result"
</xsl:template>
In XLST 1.0, the select attribute would be
select="exslt:node-set($pass1-result)"
where
xmlns:exslt="http://exlst.org/common"
HTH,
- mark
|