Re: [xsl] Substring test

Subject: Re: [xsl] Substring test
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 26 Oct 2006 16:27:15 +0100
	<xsl:template match="navigation/focusedTab">
			<xsl:call-template name="activeTab"/>
	</xsl:template>
	

why have a named template here? I'd get rid of that and change
	<xsl:template name="activeTab">
to
	<xsl:template match="focusedTab">


either way at this point

	
	<xsl:template name="activeTab">
		<xsl:choose>
			

you are on one particular focusedTab element but this test
			<xsl:when test="//focusedTab/@name='Home'">

asks if any focusedTab anywheer in the documeent  has a name of Home, so
it will almost certainly do the wrong thing (as well as being very
expensive search) if theer are more than one element.
You just want
	<xsl:choose>
			<xsl:when test="@name='Home'"> ...</xsl:when>
			<xsl:when
                         test="substring-before(@name,'::')='Home'"> ...
                           <xsl:value-of select="substring-after(@name,'::')"/>
                        </xsl:when>
    <xsl:otherwise>
 ......




David

Current Thread