Instead of using <xsl:copy-of> at the highest level, you can use
<xsl:apply-templates />.
In each template you could repeat the <xsl:choose> construct and test for the
value of the parameter in question.
When you wish to copy the element without change (identity transformation), you
use the <xsl:copy-of> instruction. When you want to suppress the element
altogether, just use a no-output rule.
Example assuming the parameter you wish to evaluate is a global one:
<xsl:template match="some-element-name">
<xsl:choose>
<xsl:when test="$parameter-name='no-output'" />
<xsl:otherwise><xsl:copy-of select="." /></xsl:otherwise>
</xsl:choose>
</xsl:template>
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email
-----Original Message-----
From: Farrukh S. Najmi <farrukh(_at_)wellfleetsoftware(_dot_)com>
Sent: Fri, 05 Jan 2007 16:04:14 -0500
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Selectively applying Identity transform to multiple inputs
(Multiplexer Style Sheet)
cknell(_at_)onebox(_dot_)com wrote:
How about this?
<xsl:template match="/">
<xsl:choose>
<xsl:when test="$input2=''">
<xsl:copy-of select="." />
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="document($input2/)" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Thanks very much! This does the trick very nicely.
How can I extend above so that I can do selective transformation of some
nodes in the output tree?
For example what if I want to suppress the copying of some nodes based
on a parameter value.
Here is a sample template to selectively copy tp:Comment element. I cant
figure out how how to wire
this to what you suggested earlier.
<!--
Only copy tp:Comment if $copyComment is not null
-->
<xsl:template match="tp:Comment">
<xsl:if test="$copyComment != ''">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>
Thanks again.
--
Regards,
Farrukh
Web: http://www.wellfleetsoftware.com
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--