2017-04-07 68 views
0

请问您可以告诉我如何使用call-template在xslt中添加活动类? 这里是我的代码 http://xsltransform.net/jxDigTt/1如何在xslt中添加活动类?

预计输出:在A添加的活性类,因为我通过“A”作为选择项

<ul> 
     <li class="active">A</li> 
     <li>B</li> 
    </ul> 

预计输出:在B添加,因为我通过主动类'B'作为选定项目

<ul> 
     <li >A</li> 
     <li class="active">B</li> 
    </ul> 

完整代码

<?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> 
+1

请编辑您的问题以显示XSLT。 xsltransform.net网站是一个很好的资源,但它通常不可用,这会使这个问题很难回答,或者会使其他人受益。谢谢。 –

+0

现在检查http://xsltransform.net/jxDigTt/1 – user944513

+1

是的。现在没问题,但它可能在将来任何时候都不可用,这意味着任何检查此问题的人都不会有完整的上下文。你的XSLT并不大,所以它可以很容易地复制到问题中。谢谢。 –

回答

1

可以调整submenu_navigation模板是这样的:

<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> 

<xsl:if>,使有条件的属性的创建。