Wolfgang Schlaupitz: XSLT - Separatoren einfügen

Hallo

Ich möchte Elemente durch einen Separator trennen.

XML:
<vater>
text(<kind id="1">text</kind>)Text(<kind id="2">Text</kind><kind id="3">Text</kind><kind id="4">Text</kind><kind id="5">Text</kind>
<kind id="6">Text</kind><kind  id="7">Text</kind>)Text(Text<kind id="8">Text</kind>
<kind id="9">Text</kind><kind id="10">Text</kind><kind id="11">Text</kind><kind id="12">Text</kind>).
</vater>

Der Separator soll nur dann eingfügt werden, wenn auf ein <kind>-Element
ein weiteres folgt.

XSLT:
...
<xsl:when test="following-sibling::kind">
...
<xsl:value-of select="." />xsl:text;&#160;</xsl:text>
...

Ergebnis:
<vater>
text(<kind id="1">text</kind>;&#160;)Text(<kind id="2">Text</kind>;&#160;<kind id="3">Text</kind>;&#160;<kind id="4">Text</kind>;&#160;<kind id="5">Text</kind>;&#160;
<kind id="6">Text</kind>;&#160;<kind  id="7">Text</kind>;&#160;)Text(Text<kind id="8">Text</kind>;&#160;
<kind id="9">Text</kind>;&#160;<kind id="10">Text</kind>;&#160;<kind id="11">Text</kind>;&#160;<kind id="12">Text</kind>).
</vater>

Problem:
Es kommt vor, dass in der Ausgabe zwischen den <kind>-Elementen Text steht. Zusammenhängende <kind>-Elemente sind durch runde Klammern begrenzt.
Der Separtator so nur in diesem Fall gesetzt werden:
...</kind><kind...
=>...</kind>;&#160;<kind...
und nicht bei
</kind>)Text(Text<kind...
(falsches ergebnis: ...</kind>;&#160;)Text(Text<kind...)

Kann mir hierbei jemand weiterhelfen.

Danke mal.

Gruss
Wolfgang

  1. Hallo,

    Ich möchte Elemente durch einen Separator trennen.
    Es kommt vor, dass in der Ausgabe zwischen den <kind>-Elementen Text steht. Zusammenhängende <kind>-Elemente sind durch runde Klammern begrenzt.
    Der Separtator so nur in diesem Fall gesetzt werden:
    ...</kind><kind...
    =>...</kind>;&#160;<kind...
    und nicht bei
    </kind>)Text(Text<kind...
    (falsches ergebnis: ...</kind>;&#160;)Text(Text<kind...)

    Kann mir hierbei jemand weiterhelfen.

    test="following-sibling::kind and not(starts-with(following::text(), ')'))"

    Grüße
    Thomas

    1. Danke schön,

      funktioniert so wunderbar!

      Gruss

      Wolfgang