Hallo,
aber wie ich neue in den Output bringe, hab ich leider nicht gefunden.
z.B.:
xsl:text
</xsl:text>
Mein Ziel: Ein XML-Dokument zu einem Mail(<xsl:output method="text" media-type="text/plain" encoding="iso-8859-1"/>) transformieren, wobei der Text automatisch nach einer bestimmten Zeichenzahl umgebrochen werden soll.
Ist dies mit XSL möglich? Der jeweils einzufüllende und umzubrechende Text steht in einem einzelnen Tag, muss also sonst nichts zusammengefügt werden..
Ja, das ist möglich:
Es wird ein zweifacher Recursion notwendig sein:
ich habe hier noch <br /> in den Templates, wenn du dort was anderes brauchst muss du sie entsprechend ersetzen.
Wenn du was nicht verstehst, frage bitte nach!
Grüße
Thomas
PS: "<text>" ist das Element in dem sich dein Text befindet.
<xsl:template match="text">
<xsl:call-template name="addbreak">
<xsl:with-param name="text" select="." />
</xsl:call-template>
</xsl:template>
<xsl:template name="addbreak">
<xsl:param name="text" />
<xsl:variable name="textbeforebreak" select="substring($text, 1, 72)" />
<xsl:variable name="textafterbreak" select="substring($text, 73)" />
xsl:choose
<xsl:when test="string-length($text) > 72">
<xsl:call-template name="break">
<xsl:with-param name="textmitumbruch" select="$textbeforebreak" />
</xsl:call-template>
<br />
<xsl:call-template name="addbreak">
<xsl:with-param name="text" select="$textafterbreak" />
</xsl:call-template>
</xsl:when>
xsl:otherwise
<xsl:call-template name="break">
<xsl:with-param name="textmitumbruch" select="$text" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="break">
<xsl:param name="textmitumbruch" />
<xsl:variable name="afterbreak" select="substring-after($textmitumbruch, '
')" />
xsl:choose
<xsl:when test="contains($textmitumbruch, '
')">
<xsl:value-of select="substring-before($textmitumbruch, '
')" />
<br />
<xsl:call-template name="break">
<xsl:with-param name="textmitumbruch" select="$afterbreak" />
</xsl:call-template>
</xsl:when>
xsl:otherwise
<xsl:value-of select="$textmitumbruch" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>