xml - how to add active class in xslt? -
could please tell me how add active class in xslt using call-template
? here code http://xsltransform.net/jxdigtt/1
expected output :active class added in a
because pass 'a' selected item
<ul> <li class="active">a</li> <li>b</li> </ul>
expected output :active class added in b
because pass 'b' selected item
<ul> <li >a</li> <li class="active">b</li> </ul>
full code
<?xml version="1.0" encoding="utf-8" ?> <xsl:transform xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:output method="html" doctype-public="xslt-compat" omit-xml-declaration="yes" encoding="utf-8" indent="yes" /> <xsl:template match="/"> <hmtl> <head> <title>new version!</title> <style> .active { color:red } </style> </head> <xsl:call-template name="submenu_navigation"> <xsl:with-param name="selecteditem" select="'a'"/> </xsl:call-template> </hmtl> </xsl:template> <xsl:template name="submenu_navigation"> <xsl:param name="selecteditem"/> <xsl:value-of select='$selecteditem'/> <ul> <li>a</li> <li>b</li> </ul> </xsl:template> </xsl:transform>
you can adjust submenu_navigation
template this:
<xsl:template name="submenu_navigation"> <xsl:param name="selecteditem"/> <xsl:value-of select='$selecteditem'/> <ul> <li><xsl:if test="$selecteditem = 'a'"> <xsl:attribute name="class">active</xsl:attribute></xsl:if>a</li> <li><xsl:if test="$selecteditem = 'b'"> <xsl:attribute name="class">active</xsl:attribute></xsl:if>b</li> </ul> </xsl:template>
the <xsl:if>
makes creation of attribute conditional.
Comments
Post a Comment