Я работаю над некоторым 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
«Do this 1» - это то, что читается из XML и является правильным. Я не уверен, почему <xsl:value-of select="$step" />
возвращает «step1», а не «Do this 1», потому что <xsl:value-of select="$step" />
должно переводиться в <xsl:value-of select="step1" />
.
Любая подсказка, где я иду не так здесь?
Спасибо.