Subject: Re: Help with matching
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 18 Oct 1999 14:06:11 +0100 (BST)
|
> Any tips?
it depends a bit what you want to do, do you want to just be in a
recursive template matching situation, and have different templates fire
for those two cases, or do you want to be sat at a foo node and query if
there is a bar/bar child, in which case do something different.
In the second case you could have
<xsl:template match="foo">
<xsl:choose>
<xsl:when test="bar/bar">
<xsl:text> case 2</xsl:text>
<xsl:apply-templates select="bar/bar"/>
</xslwhen>
<xsl:otherwise>
<xsl:text> case 1</xsl:text>
<xsl:apply-templates select="bar"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
In the former case you just want different templates like
<xsl:template match="foo">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="bar/bar" priority="3">
I'm a bar with a bar parent
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="bar[bar]" priority="2">
I'm a bar with bar children (and not a bar parent)
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="bar">
I'm a bar that's all alone
<xsl:apply-templates/>
</xsl:template>
I just typed this into the mail buffer not tested;-0
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|