Häufig gestellte Fragen FAQ

33. Ist es möglich, innerhalb der REF-Anweisung von einem definierten XML-Alias über die Punktnotation tiefer in den XML-Baum zu navigieren?

Es gibt den Begriff des aktuellen Kontextes. Dieser wird bei der next-Anweisung gesetzt, zum Beispiel von { next "DEF: "} oder mit {next –Alias}{next Alias} bei Aliasen, die im <multi>-Element definiert sind. Dies setzt den Datensatzzeiger Alias erst vor den ersten Datensatz und dann auf den ersten Datensatz. Damit ist der aktuelle Kontext dann das erste Element, das durch den Alias-Xpath ausgewählt wurde. Folgt dann eine Schleife, so ist beim zweiten, etc. Schleifendurchlauf entsprechend das zweite, etc. Element der durch den Alias-Xpath gewählten Elemente der aktuelle Kontext. Anschließend kann man bei nachfolgenden Xpath-Ausdrücken im Rohtext relativ zugreifen.

Beispiel:

<root>
    <data>
        <a>
            <feld1>Wert1</feld1>
        </a>
        <b>          
<feld1>Wert3</feld1>           
<feld2 code="blau">Wert3</feld2>
        </b>
    </data>
</root>

Kontext setzen:

{ next "DEF:Einstellungen;XML:$(inline);//data }
"Wert1" ausgeben, relativ zum data-Knoten, also ohne führende /
{ ref "DAT:XML:$(inline);a/feld1 }
Code "blau" ausgeben:
{ ref "DAT:XML:$(inline);b/feld2@code }