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
|