|
Subject: Re: transforming one specific subtree only From: Mike Brown <mike@xxxxxxxx> Date: Tue, 7 Nov 2000 14:35:58 -0700 (MST) |
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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: transforming one specific subtr, Sebastian Rahtz | Thread | Re: transforming one specific subtr, Jakob |
| Re: transforming one specific subtr, Sebastian Rahtz | Date | Re: getting parents position, Mike Brown |
| Month |