簡體   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