Hallo whine,
Ich habe in einer XML folgendes
<zf>wortabc#wortdef#wortganzdolllang#wort1#wort3345#wort777...<zf>
Nun möchte ich gern mit xslt eine Ausgabe erzeugen, welche mit immer ein durch die # getrenntes Paar untereinander ausgibt (oder erstmal in eine Variable schreibt). Im o.g. Bsp. also
wortabc#wortdef#
wortganzdolllang#wort1#
wort3345#wort777
...Ich habe schon mit substring-before und substring-after rumgespielt, aber so richtig bin ich auf keinen grünen Zweig gekommen.
Hat jemand eine Idee?
Für XSLT 2.0 (ansonsten, wie gesagt, rekursiv zerlegen):
<xsl:variable name="tok" select="fn:tokenize(zf, '#')"/>
<xsl:for-each select="$tok">
<xsl:variable name="pos" select="fn:position()"/>
<xsl:if test="$pos mod 2 != 0">
<xsl:value-of select="fn:concat($tok[$pos], '#', $tok[$pos + 1], if($pos != fn:last() - 1) then '#
' else())"/>
</xsl:if>
</xsl:for-each>
Erzeugt:
wortabc#wortdef#
wortganzdolllang#wort1#
wort3345#wort777...
Grüße,
Thomas