Transformation-Patterns Markieren Wenn man alles auf einmal transformieren will, kommt man schnell in Bedrängnis. Es empfiehlt sich zunächst zu markieren und im nächsten Schritt dann auf den markierten Elementen bestimmte Operationen auszuführen.
<xsl:template match="*[name()=$outline-element-names]"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:if test="preceding-sibling::*[1][@otherprops=$list-fragment-marker]"> <xsl:attribute name="copy-target-id" select="preceding-sibling::*[@otherprops=$list-fragment-marker][1]/ descendant::*[@copy-id][last()]/@copy-id"/> </xsl:if> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template>Plain Text
Hier wird ein künstliches Attribut @copy-target-id mit einem Wert von @copy-id an ein Outline Element gesetzt, das im folgenden Schritt an die Stelle nach der @copy-id kopiert wird.