0
のために再帰的に呼び出されたテンプレートに存在し、この条件を考えてみましょう:私はXSLT 2.0プロセッサ(サクソン-B 9.1を使用してい条件は、XSLT 1.0スタイルシートのために動作しますが、ないXSLT 2.0スタイルシート
<xsl:if test="$i <= $count">
。 0.6)。この状態は、XSLT 1.0スタイルシートを実行しているときにのみ有効です。スタイルシートのバージョンが2.0に設定されている場合、それは動作を停止します。
なぜでしょうか?
<xsl:template name="for.loop">
<xsl:param name="i" />
<xsl:param name="count" />
<xsl:if test="$i <= $count">
...
</xsl:if>
<!-- Repeat the loop by recursion -->
<xsl:if test="$i <= $count">
<xsl:call-template name="for.loop">
<xsl:with-param name="i">
<xsl:value-of select="$i + 1" />
</xsl:with-param>
<xsl:with-param name="count">
<xsl:value-of select="$count" />
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
ありがとう:
は、ここで全体のことです。
それを修正しました。私は2回目のテストでnumber($ count)を使用しました。なぜそのテストのうちの1つだけが変更を必要とするのか不思議です。 –
Jonathan
両方のテストで実際に変更が必要だと思います。あなたはチェックしましたか?条件を否定すると(test = "$ count > $ i")、あなたに知らせてください。 – Tomalak
test = "$ count > = $ i"の両方の条件を逆にしました。これはnumber関数なしでも機能します。どうしたの? – Jonathan