While
Create a loop. All child elements are executed as long as the condition in the test attribute evaluates to true.
Child elements
A , AddSearchpath , AttachFile , Attribute , B , Barcode , Bookmark , Box , Br , ClearPage , Clip , Color , Column , Columns , Copy-of , DefineColor , DefineFontalias , DefineFontfamily , DefineMatter , DefineTextformat , Element , Fontface , ForAll , Frame , Group , HSpace , HTML , Hyphenation , I , Image , Include , Initial , InsertPages , Layout , Li , LoadDataset , LoadFontfile , Loop , Mark , Message , NextFrame , NextRow , NoBreak , Options , Output , Overlay , Pageformat , Pagetype , Paragraph , PlaceObject , PositioningArea , PositioningFrame , ProcessNode , SaveDataset , SavePages , Section , SetGrid , SetVariable , SortSequence , Span , StructureElement , Sub , Sup , Switch , Table , TableNewPage , Tablehead , Tablerule , Td , Tr , Trace , Transformation , U , Until , VSpace , Value , While
Parent elements
AtPageCreation , AtPageShipout , Case , Contents , ForAll , Layout , Loop , Otherwise , Record , SavePages , Section , Until , While
Attributes
test(XPath expression )- Every time before the the loop is executed, this condition must evaluate to true. See the command Until for a loop with an exit test.
Example
The following example creates a textblock with three times the contents ‘Text Text Text ‘.
<Record element="data">
<SetVariable variable="counter" select="1"/>
<SetVariable variable="text" select="''"/>
<While test=" $counter <= 3 "> <!-- less or equal -->
<SetVariable variable="counter" select=" $counter + 1"/>
<SetVariable variable="text">
<Value select="$text"/>
<Value select="'Text '"/>
</SetVariable>
</While>
<PlaceObject>
<Textblock>
<Paragraph><Value select="$text"/></Paragraph>
</Textblock>
</PlaceObject>
</Record>
