Re: transforming one specific subtree only

Subject: Re: transforming one specific subtree only
From: "Sebastian Rahtz" <sebastian.rahtz@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 7 Nov 2000 20:36:32 +0000 (GMT)
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


Current Thread