# ForProcessor

## Überblick

Der `ForProcessor` ermöglicht Iteration über Arrays oder Sammlungen und rendert HTML für jedes Element.

## Funktionsweise

- Findet `<for>`-Tags mit `var` und `in` Attributen
- Durchläuft die angegebene Sammlung im RenderContext
- Rendert den inneren Inhalt für jedes Element der Sammlung
- Ersetzt Platzhalter mit den Werten des aktuellen Elements

## Syntax

```html
<for var="itemName" in="arrayName">...</for>
```

## Beispiel

```html
<ul>
    <for var="user" in="users">
        <li>{{ user.name }} ({{ user.email }})</li>
    </for>
</ul>
```

## Implementierung

Der Prozessor verwendet XPath, um `<for>`-Tags zu finden. Für jedes Element in der Sammlung wird der Inhalt des `<for>`-Tags geklont und die Platzhalter werden durch die entsprechenden Werte ersetzt. Die Ergebnisse werden zusammengefügt und an der Stelle des ursprünglichen `<for>`-Tags eingefügt.

## Parameter

- **var**: (Erforderlich) Der Name der Variable, die in jeder Iteration verwendet wird
- **in**: (Erforderlich) Der Name des Arrays oder der Sammlung im RenderContext

## Verschachtelte Schleifen

Schleifen können verschachtelt werden, um mehrdimensionale Daten zu verarbeiten:

```html
<for var="category" in="categories">
    <h2>{{ category.name }}</h2>
    <ul>
        <for var="product" in="category.products">
            <li>{{ product.name }} - {{ product.price }}</li>
        </for>
    </ul>
</for>
```

## Rekursive Platzhalterersetzung

Der ForProcessor ersetzt Platzhalter rekursiv in allen Kind-Nodes des aktuellen Elements. Dies ermöglicht die Verwendung von Platzhaltern in verschachtelten Elementen und Attributen.

## Tipps

- Stellen Sie sicher, dass die im `in`-Attribut angegebene Variable ein Array oder eine iterable Collection ist
- Der ForProcessor kann mit dem IfProcessor kombiniert werden, um bedingte Schleifen zu erstellen
