我有两个文件。
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
修改导航。以下方式的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>