我有2个文件。
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中声明变量,并且仍然通过call-template在navigation.xsl中使用它,因为我收到的错误如“变量'值'尚未声明。” ....
我这样做的原因是因为我需要指定应突出显示的按钮。
谢谢!
答案 0 :(得分:3)
使用xsl:with-param
http://www.w3schools.com/xsl/el_with-param.asp
以下列方式修改navigation.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>