Hallo,
...
<text>
<![CDATA[
zeile1
zeile2
]]>
</text>
...soll mit XSLT zu einem XHTML-Dokument
...
<p>
zeile1<br/>
zeile2
</p>
...transformiert werden.
Ist das möglich?
Nicht wenn du ein CDATA-Bereich hast. Das ist für den XML- und XSL-Prozessor nur Zeichensalat auf dessen Inhalt er keinen Zugriff hat. (das <p> ginge ja noch, aber die <br>-s bekommstdu nicht mehr hin.)
Wenn ja, wie?
<text>
zeile1
zeile2
</text>
Dann in deiem XSL:
<xsl:template match="text">
<p>
<xsl:call-template name="cr2br">
<xsl:with-param name="text" select="text()" />
</xsl:call-template>
</p>
</xsl:template>
<xsl:template name="cr2br">
<xsl:param name="text" />
<xsl:variable name="textafterbreak" select="substring-after($text, '
')" />
xsl:choose
<xsl:when test="contains($text, '
')">
<xsl:value-of select="substring-before($text, '
')" />
<br />
<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>
Grüße
Thomas