通过调用模板将XSLT变量从一个XSL传递到另一个XSL



我有两个文件。

1 -> index.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- Includes -->
    <xsl:include href="navigation.xsl" />
    <xsl:include href="head.xsl" />
    <xsl:template match="/">
    <!-- WANT TO PASS THIS VARIABLE TO navigation.xsl-->
    <xsl:variable name="value" select="1"/>
    <!-- WANT TO PASS THIS VARIABLE TO navigation.xsl-->
    <html>
        <head>
            <!-- Basic -->
            <xsl:call-template name="HtmlBasicHead"/>
            <!-- Seo -->
            <title>Impress</title>
            <meta name="description" content="..." />
            <meta name="keywords" content="..." />
        </head>
        <body>
            <div id="main">
                <xsl:call-template name="Header"/>
                <xsl:call-template name="NavigationMenu"/>
            </div>
        </body>
    </html>
    </xsl:template>
</xsl:stylesheet>

2 -> navigation.xsl

<xsl:template name="NavigationMenu">
    <!-- NAVIGATION MENU BEGIN -->
    <div id="tray">
    <ul>
        <xsl:if test="$value='1'">
        VALUE IS 1
        </xsl:if>
        <li id="tray-active"><a href="#">Homepage</a></li>
        <li><a href="#">Live demo</a></li>
        <li><a href="#">About product</a></li>
        <li><a href="#">Testimonials</a></li>
        <li><a href="#">Download</a></li>
        <li><a href="#">Purchase</a></li>
    </ul>
    <!-- NAVIGATION MENU END -->
</xsl:template>

我想做的是在index中声明变量。XSL,并且仍然在导航中使用它。xsl通过调用模板,因为我得到一个错误,如"变量'值'尚未声明。"…

我这样做的原因是因为我需要指定应该突出显示哪个按钮。

谢谢!

使用xsl:with-param

http://www.w3schools.com/xsl/el_with-param.asp

修改导航。以下方式的XSL

<xsl:template name="NavigationMenu">
   <xsl:param name="value" />
   ...

,然后从index调用它。以这种方式XSL

<xsl:call-template name="NavigationMenu">
   <xsl:with-param name="value" select="1" />
</xsl:call-template>

相关内容

  • 没有找到相关文章

最新更新