xslt选项卡使用xslt变量中的for-each包含xml

时间:2014-04-03 03:22:48

标签: xslt

我正在尝试在XSLT变量中基于XML生成标签界面。

所以XSLT变量

    <xsl:variable name="tabs">
      <tabs>
        <tab name="All" href="ref1" col="AppScript"></tab>
        <tab name="xxx" href="ref2" col="python_docs"></tab>
      </tabs>
    </xsl:variable>

我创建选项卡的xslt是

            <div class="container" style="margin-bottom:5px;">
                <ul class="nav nav-tabs" style="border-bottom-width: 0px; margin-top: 0px;">    
                    <xsl:for-each select="$tabs">
                        <xsl:if test="PARAM[(@name='site') and (@value='{tabs/tab/@col}')]">
                            <li class="active">
                                <a href="{tabs/tab/@href}">                                 
                                    <xsl:value-of select="tabs/tab/@name"></xsl:value-of>
                                </a>
                            </li>
                        </xsl:if>
                        <li>
                            <a href="{tabs/tab/@href}">
                                <xsl:value-of select="tabs/tab/@name"></xsl:value-of>
                            </a>
                        </li>
                    </xsl:for-each>
                </ul>
            </div>

我得到的是

<li><a href="ref1 ref2">All xxxx</a></li>

我想要的是 当site = python_docs

<li class="active"><a href="ref2">xxx</a></li>
<li><a href="ref1">All</a></li>

请帮忙

1 个答案:

答案 0 :(得分:0)

更改您的xslt以创建标签

    <div class="container" style="margin-bottom:5px;">
        <ul class="nav nav-tabs" style="border-bottom-width: 0px; margin-top: 0px;">    
            <xsl:for-each select="$tabs/tabs/tab">
                <xsl:if test="PARAM[(@name='site') and (@value='{@col}')]">
                    <li class="active">
                        <a href="{@href}">                                 
                            <xsl:value-of select="@name"></xsl:value-of>
                        </a>
                    </li>
                </xsl:if>
                <li>
                    <a href="{@href}">
                        <xsl:value-of select="@name"></xsl:value-of>
                    </a>
                </li>
            </xsl:for-each>
        </ul>
    </div>