私は XSLT の初心者で、この問題にかなり苦労しています。XSLT で while のようなループを実行する必要があります。この問題を解決するには for-each だけでは不十分だと思います。
SELECT ステートメントの結果である変数があります。0 または整数を返すことができます。値が 0 の場合は、別のパラメーターを送信して SELECT を再度実行し、値が異なるかどうかを確認する必要があります。
while のようなループを使用することしか考えられませんが、これを達成する別の方法があるのではないでしょうか? テンプレートを使用して、最後に自分自身を呼び出すのは好きですか? 出来ますか?
そんな感じ:
<!-- initiate TEMPLATE -->
<!-- WHILE $VALUE = 0 -->
<xsl:variable name="sql.query">
<sql:param name="SQL_QUERY">SELECT $value FROM date_table WHERE date='$date'</mx:param>
</xsl:variable>
<xsl:variable name="VALUE">
<xsl:value-of select="sql:exec-formula('generic.sql', exsl:node-set($sql.query)//sql:param)" /> <!-- this will bring the result of the SELECT in the variable -->
</xsl:variable>
<xsl:variable name="date">
<xsl:value-of select="$date-1" /> <!-- something like that, it doesn't matter -->
</xsl:variable>
<xsl:if test="$VALUE ='0'">
<!-- call template again -->
</xsl:if>
<!-- end of template -->