While

Erzeugt eine Schleife, die wiederholt durchlaufen wird. Die Kindelemente werden so oft ausgeführt, solange die Bedingung im Attribut »wahr« ergibt.

Kindelemente

A, Action, 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, Hyphenation, I, Image, Include, Initial, InsertPages, Layout, Li, LoadDataset, LoadFontfile, Loop, Message, NextFrame, NextRow, NoBreak, Options, Output, Overlay, Pageformat, Pagetype, Paragraph, PlaceObject, PositioningArea, PositioningFrame, ProcessNode, SaveDataset, SavePages, SetGrid, SetVariable, SortSequence, Span, StructureElement, Sub, Sup, Switch, Table, TableNewPage, Tablehead, Tablerule, Td, Tr, Trace, Transformation, U, Until, VSpace, Value, While

Elternelemente

AtPageCreation, AtPageShipout, Case, Contents, ForAll, Layout, Loop, Otherwise, Record, SavePages, Until, While

Attribute

test (XPath-Ausdruck)

Für jedes Mal, das die Schleife durchlaufen werden soll, muss die Bedingung im Attribut erfüllt sein. Die Bedingung wird am Anfang der Schleife überprüft. Eine Schleife, bei der die Bedingung am Ende der Schleife geprüft wird, ist Until.

Beispiel

Folgendes Beispiel erzeugt einen Textblock mit dem Inhalt „Text Text Text“.

<Record element="url">
  <SetVariable variable="zaehler" select="1"/>
  <SetVariable variable="text" select="''"/>
  <While test=" $zaehler &lt;= 3 "> <!-- kleiner oder gleich -->
    <SetVariable variable="zaehler" select=" $zaehler + 1"/>
    <SetVariable variable="text">
      <Value select="$text"/>
      <Value select="'Text '"/>
    </SetVariable>
  </While>
  <PlaceObject>
    <Textblock>
      <Paragraph><Value select="$text"></Value></Paragraph>
    </Textblock>
  </PlaceObject>
</Record>

Siehe auch

Den Abschnitt Schleifen im Kapitel Programmierung.