[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: transforming one specific subtree only
Jakob wrote: > I have a document of type > > <a> > <b ID="b1">...</b1> > <b ID="b2">...</b1> > <b ID="b3">...</b1> > <b ID="b4">...</b1> > </a> I assume you mean </b>, not </b1> > 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". How global parameters are assigned by the processor is processor dependent. I will assume that $nodeId is an object of type string. > 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. <xsl:param name="nodeId"/> <xsl:template match="/"> <!-- go process 'b' elements with matching IDs --> <xsl:apply-templates select="/a/b[@ID=$nodeId]"/> <!-- if there are no such elements, say so --> <xsl:if test="not(/a/b[@ID=$nodeId])"> <xsl:variable name="quot">'</xsl:variable> <xsl:value-of select="concat('ID ',$quot,$nodeId,$quot,' not found.')"/> </xsl:if> </xsl:template> <xsl:template match="b"> ... things to do for any 'b' element ... </xsl:template> - Mike ____________________________________________________________________ Mike J. Brown, software engineer at My XML/XSL resources: webb.net in Denver, Colorado, USA http://www.skew.org/xml/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|