繁体   English   中英

XSLT模板未使用参数

[英]XSLT Template not using parameter

我无法使用xslt参数zoneid

    <xsl:template name="ad">
    <xsl:param name="zoneid" />
    <script><![CDATA[
    var m3_u = (location.protocol=='https:'?'https://XX.php':'http://XX.php');
    var m3_r = Math.floor(Math.random()*99999999999);
    if (!document.MAX_used) document.MAX_used = ',';
    document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
    document.write ("?zoneid={$zoneid}"/>&amp;target=_blank");]]></script>
    </xsl:template>

现在,我以此运行模板:

 <xsl:template name="ad_300x600">
 <xsl:param name="state" />
 <xsl:param name="locid" />
 <xsl:when test="$state='FL'"><xsl:call-template name="ad"><xsl:with-param name="zoneid">341</xsl:with-param></xsl:call-template></xsl:when>
 </template>

这是生成的HTML:

        <script>
        var m3_u = (location.protocol=='https:'?'https://XX.php':'http://XX.php');
        var m3_r = Math.floor(Math.random()*99999999999);
        if (!document.MAX_used) document.MAX_used = ',';
        document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
        document.write ("?zoneid={$zoneid}"/>&amp;target=_blank");
        </script>

正如您在结果HTML中所看到的,它的说法是{$zoneid}

我也尝试过<xsl:value-of select="$zoneid"/> ,也没有运气。

不知道在这里做什么。

您试图在文本内容中使用属性值模板的语法。

这根本行不通-XSLT引擎不会在文本内容中查找AVT。

要输出变量,您需要结束CData部分,添加<xsl:value-of select="$zoneid"/> (然后开始一个新的CData部分)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM