如何在xslt中添加活动类?

时间:2017-04-07 07:11:52

标签: xml xslt xslt-1.0 xslt-2.0

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

预期输出:在A中添加了有效课程,因为我通过了' A'作为选定项目

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

预期输出B中添加了有效课程,因为我通过了&#39; B&#39;作为选定项目

<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 个答案:

答案 0 :(得分: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>创建属性条件。