Version 5.7.12

# `ForAll`

Executes the given commands for all elements in the data XML file that match the contents of the attribute `select`.

## 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

`A`, `AtPageCreation`, `AtPageShipout`, `B`, `Case`, `Color`, `Columns`, `Contents`, `Element`, `Fontface`, `ForAll`, `Function`, `I`, `Li`, `Loop`, `NoBreak`, `Ol`, `Otherwise`, `Pagetype`, `Paragraph`, `Record`, `SaveDataset`, `SavePages`, `SetVariable`, `Span`, `Table`, `Tablefoot`, `Tablehead`, `Td`, `Text`, `Textblock`, `Tr`, `U`, `URL`, `Ul`, `Until`, `While`

## Attributes

`limit` (number, optional, deprecated)
  Limits the number of children to the given number.
`select` (XPath expression)
  Selects the child elements from the data XML
`start` (number, optional, since version 2.3.67, deprecated)
  The first entry to process. Default is 1.

## Remarks

With the default XPath parser, start and limit are not allowed anymore. Please use predicates instead (expressions in square brackets that filter the result). For example start=“4” and limit=“8” can be obtained with `element[position() > 3 and position() &lt; 8]` with the new XPath parser.

## Example

    <Record element="data">
      <PlaceObject>
        <Table>
          <ForAll select="entry">
            <Tr><Td><Paragraph><Value select="string(.)"/></Paragraph></Td></Tr>
          </ForAll>
        </Table>
      </PlaceObject>
    </Record>

Creates a table row for all elements `entry` in the data element `data`. The data XML should look similar to this:

    <data>
      <entry>a</entry>
      <entry>b</entry>
      <entry>c</entry>
    </data>

#### On this page