Ordnung von Literalen ändern
Problem
Ein Literal (litA
) wird vor einem anderen (litB
) prozessiert. Nun soll aber diese Reihenfolge umgedreht werden.
Eingabe
{ litA: wertA, litB: wertB }
Erwartete Ausgabe
{ litB: wertB, litA: wertA }
Lösung
<data source="litA">
<buffer flushWith="record"/>
</data>
<data source="_else"/>
Mit der Funktion buffer
lässt sich ein Literal an einer beliebigen Stelle
weiterleiten, in diesem Fall erst am Ende des Datensatzes anstatt gleich
nach der Bearbeitung des entsprecechenden Literals. Mit <data
source="_else"/>
wird sichergestellt, dass auch Literale
weitergeleitet werden, für die keine explizite Regel besteht.
Bemerkungen
Sollen mehrere Literale in ihrer Reihenfolge verändert werden, ist es
sinnvoll, mehrere morph
-commands hintereinander zu schalten, und in
jeder Morph-Datei ein Literal an das Ende zu verschieben (<data
source="_else"/>
nicht vergessen!).