The saxon:while element is used to iterate while some condition is true.

Category: instruction
Content: sequence-constructor
Permitted parent elements: any XSLT element whose content model is sequence-constructor; any literal result element




The boolean expression to be tested.


The condition is given as a boolean expression in the mandatory test attribute. Because this expression must change its value if the loop is to terminate, the condition will generally reference a variable that is updated somewhere in the loop using a saxon:assign element. Alternatively, it may test a condition that is changed by means of a call on an extension function that has side-effects.

Note that the while loop does not change the focus: in particular, it does not change the value of position().


<xsl:variable name="i" select="0" saxon:assignable="yes"/> <xsl:template name="loop"> <saxon:while test="$i &lt; 10"> The value of i is <xsl:value-of select="$i"/> <saxon:assign name="i" select="$i+1"/> </saxon:while> </xsl:template>