簡體   English   中英

XSLT變量不適用於xsl:value-of select =

[英]XSLT Variable not working in xsl:value-of select=

我正在一些XSLT上工作,我創建了一個變量,該變量將在循環中使用,該變量將在循環時增加索引,因此$ index是變量。

這是我所擁有的:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">    
    <xsl:template match="/xml">
        <html>
            <head>
                <title><xsl:value-of select="module/name[@ID='SDCModule001']/title "/></title>
            </head>

            <body>
                <xsl:apply-templates select="module/name[@ID='SDCModule001']"/>                
            </body> 
        </html> 
    </xsl:template> 

    <xsl:template name="stepList" match="name">

        <xsl:param name="index" select="1" />
        <xsl:param name="total" select="numSteps" />

        <xsl:variable name="step" select="concat('step', $index)"/>
        <xsl:if test="not($index = $total)">
            <p><xsl:value-of select="step1" /><xsl:value-of select="$step" /></p>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

當我在頁面上的段落( <p><xsl:value-of select="step1" /> - <xsl:value-of select="$step" /></p> )中放置信息時,我得到:

執行此操作1-步驟1

從XML讀取的內容是“做到這一點1”,它是正確的。 我不確定為什么<xsl:value-of select="$step" />帶回“ step1”而不是“ Do this 1”,因為<xsl:value-of select="$step" />應該轉換為<xsl:value-of select="step1" />

有什么線索我在這里出錯嗎?

謝謝。

XSLT不是宏語言。

在宏語言中,變量保存表達式文本的片段,因此,如果$ x包含文本“刪除文件'z'”,則評估$ x會導致文件被刪除。

XSLT是一種傳統的表達語言,其中變量包含值。 評估包含文本“刪除文件'z'”的變量只會返回該文本,不會導致任何文件被刪除。 同樣,如果變量$ v1的值為“ $ v2”,則求值結果為字符串“ $ v2”,而不是變量$ v2的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM