Hallo joy,
XPath 2.0 bietet die Funktion "tokenize". Wenn Du einen XSLT-Prozessor verwendest, der das kann, würde ich das damit machen.
Dann sollte wohl in der Art gehen:
<xsl:foreach select="tokenize(/TextArea, '\n')">
<xsl:if test=".">
<text><xsl:value-of select="."/></text>
</xsl:if>
</xsl:foreach>
Oder vielleicht auch:
<xsl:foreach select="tokenize(/TextArea, '\s*\n\s*')">
<xsl:value-of select="."/>
</xsl:foreach>
Leere abschnitte mit einem xsl:if zu ignorieren, sollte aber auch bei Deinem Hack mit dem rekursiven Template funktionieren.
Grüße
Daniel