This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: transforming one specific subtree only
- To: jakob at free dot fr
- Subject: Re: transforming one specific subtree only
- From: "Sebastian Rahtz" <sebastian dot rahtz at computing-services dot oxford dot ac dot uk>
- Date: Tue, 7 Nov 2000 20:36:32 +0000 (GMT)
- cc: xsl-list at mulberrytech dot com
- References: <973626203.3a085b5bca8fc@imp.free.fr>
- Reply-To: xsl-list at mulberrytech dot com
Jakob writes:
> <a>
> <b ID="b1">...</b1>
> <b ID="b2">...</b1>
> <b ID="b3">...</b1>
> <b ID="b4">...</b1>
> </a>
>
> In my stylesheet I have a global param $nodeId defined which gets
> assigned an
> ID from an argument sent to the processor, such as "b2".
>
> I would like to only transform the subtree whose root has the ID
> stored in
> $nodeId, and ignore, ie. not produce any output at all for all
> other elements.
> If no matching ID is found, some boilerplate text should be
> produced instead.
how about
<xsl:template match="a">
<xsl:variable name="r">
<xsl:apply-templates select="id($nodeId)"/>
</xsl:variable>
<xsl:copy-of select="$r"/>
<xsl:if test="$r=''">
Some text
<xsl:if>
</xsl:template>
untested, mind.
sebastian
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list