[英]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.