joy: Text Absätze markieren

Beitrag lesen

Hallo,

ich möchte gerne bei einem XML Text mithilfe eines XSL Stylesheets die Absätze mit <Text> Elementen umschließen, d.h.

Eingabe:
<?xml version="1.0"?>
<TextArea>
Titel

Das ist ein Text mit mehreren Abschnitten.

Hier kommt wieder ein Abschnitt, welcher auch noch einzelne
Zeilenumbrüche enthält, die ebenfalls erhalten bleiben
sollen.

Und zum Schluss noch ein Absatz.
</TextArea>

Ausgabe soll sein:
<?xml version="1.0"?>
<TextArea>
<Text>Titel
</Text>
<Text>
Das ist ein Text mit mehreren Abschnitten.
</Text>
<Text>
Hier kommt wieder ein Abschnitt, welcher auch noch einzelne
Zeilenumbrüche enthält, die ebenfalls erhalten bleiben
sollen.
</Text>
<Text>
Und zum Schluss noch ein Absatz.
</Text>
</TextArea>

Ich habe es schon versucht mit diesem XSL:
<xsl:template match="text()">
  <xsl:call-template name="cr2br">
 <xsl:with-param name="text" select="." />
  </xsl:call-template>
</xsl:template>

<xsl:template name="cr2br">
  <xsl:param name="text" />
  <xsl:variable name="textafterbreak" select="substring-after($text, '&#10;')" />
  xsl:choose
   <xsl:when test="contains($text, '&#10;')">
         <xsl:element name="text">
      <xsl:value-of select="substring-before($text, '&#10;')" />
         </xsl:element>
      <xsl:call-template name="cr2br">
         <xsl:with-param name="text" select="$textafterbreak" />
      </xsl:call-template>
    </xsl:when>
    xsl:otherwise
     <xsl:value-of select="$text" />
    </xsl:otherwise>
 </xsl:choose>
</xsl:template>

Das brachte aber nicht das gewünscht Ergebnis, da es bei jedem Zeilenumbruch die <Text> Elemente setze.
Und die Suche nach "substring-after($text, '&#10;&#10;') bzw. "substring-before($text, '&#10;&#10;')" hat mir gar keine Ergebnisse geliefert.

Kann mir bitte jemand von euch vielleicht helfen?

Gruß
Joy