Hallo,
ich habe folgende Liste in xml:
('tom (a)','jan (b)','uli','oli (b,c)')
und will nach der transformation folgendes Ergebnis bekommen:
<Y Type="en">
<x disp="tom (a)"/>
<x disp="jan (b)"/>
<x disp="uli"/>
<x disp="oli (b,c)"/>
</Y>
Mein Code sieht so aus:
<xsl:choose>
<xsl:variable name="str" select="tokenize(translate(replace(substring-after(normalize-space(.), '('), '\)+$', ''), "'", ''), ',')"/>
<Y Type="en">
<xsl:for-each select="$str">
<x>
<xsl:attribute name="disp" select="." />
</x>
</xsl:for-each>
</Y>
</xsl:choose>
bekomme aber das Ergebnis:
<Y Type="en">
<x disp="tom (a)"/>
<x disp="jan (b)"/>
<x disp="uli"/>
<x disp="oli (b"/>
<x disp="c)"/>
</Y>
in mein Code habe ich die Rundeklammern am Anfang und Ende entfernt dann mit der Funktion translate die Hochkommas ersetzt.
die Liste sieht dann so aus: tom (a),jan (b),uli,oli (b,c)
ab hier habe ich ein Problem. Wie kann ich die Liste nach Kommas splitten ohne dass das letzte Komma in Klammern berücksichtigt wird?
vielen Dank für Eure Hilfe
Gruß
ich habe folgende Liste in xml:
('tom (a)','jan (b)','uli','oli (b,c)')
und will nach der transformation folgendes Ergebnis bekommen:
<Y Type="en">
<x disp="tom (a)"/>
<x disp="jan (b)"/>
<x disp="uli"/>
<x disp="oli (b,c)"/>
</Y>
Mein Code sieht so aus:
<xsl:choose>
<xsl:variable name="str" select="tokenize(translate(replace(substring-after(normalize-space(.), '('), '\)+$', ''), "'", ''), ',')"/>
<Y Type="en">
<xsl:for-each select="$str">
<x>
<xsl:attribute name="disp" select="." />
</x>
</xsl:for-each>
</Y>
</xsl:choose>
bekomme aber das Ergebnis:
<Y Type="en">
<x disp="tom (a)"/>
<x disp="jan (b)"/>
<x disp="uli"/>
<x disp="oli (b"/>
<x disp="c)"/>
</Y>
in mein Code habe ich die Rundeklammern am Anfang und Ende entfernt dann mit der Funktion translate die Hochkommas ersetzt.
die Liste sieht dann so aus: tom (a),jan (b),uli,oli (b,c)
ab hier habe ich ein Problem. Wie kann ich die Liste nach Kommas splitten ohne dass das letzte Komma in Klammern berücksichtigt wird?
vielen Dank für Eure Hilfe
Gruß