Hallo Zusammen,
ich habe folgendes Problem:
Ich habe einen ziemlich langen String (einzelne Wörter sind mit Unterstrich verbunden, der String hat kein einziges Leerzeichen) und möchte in diesen nach einer bestimmten Anzahl Zeichen ein Leerzeichen einfügen. Grund: Damit er in einer Tabelle entsprechend umgebrochen wird ohne dass sich die Zeichen über über die nächsten Spalte mit schieben und dort der Text unleserlich ist, weil sich die Wörter überlagern.
Wie bekomme ich sowas am geschicktesten hin?
String ist bspw.:
Das Leerzeichen soll nach jeweils immer 20 Zeichen eingefügt werden.
Mein bisheriger Ansatz fügt bisher immer nur nach den ersten 20 Zeichen ein Leerzeichen ein. Ich weiß nicht, wie ich das rekursiv hinbekomme.
Der Aufruf erfolgt so hier:
Gruß,
MAF1981
ich habe folgendes Problem:
Ich habe einen ziemlich langen String (einzelne Wörter sind mit Unterstrich verbunden, der String hat kein einziges Leerzeichen) und möchte in diesen nach einer bestimmten Anzahl Zeichen ein Leerzeichen einfügen. Grund: Damit er in einer Tabelle entsprechend umgebrochen wird ohne dass sich die Zeichen über über die nächsten Spalte mit schieben und dort der Text unleserlich ist, weil sich die Wörter überlagern.
Wie bekomme ich sowas am geschicktesten hin?
String ist bspw.:
Code:
Ich_bin_ein_ziemlich_langer_Text_der_kein_Leerzeichen_hat__das_ist_schade
Mein bisheriger Ansatz fügt bisher immer nur nach den ersten 20 Zeichen ein Leerzeichen ein. Ich weiß nicht, wie ich das rekursiv hinbekomme.
Code:
<xsl:template name="hardLineBreak"> <xsl:param name="breakAfterCharacters"/> <xsl:param name="textToBreak"/> <xsl:choose> <xsl:when test="contains($textToBreak,' ')"> <xsl:value-of select="$textToBreak" /> </xsl:when> <xsl:when test="string-length($textToBreak)"> <xsl:variable name="laenge" select="string-length($textToBreak)" /> <xsl:variable name="vor" select="substring($textToBreak,1,$breakAfterCharacters)" /> <xsl:variable name="nach" select="substring($textToBreak,$breakAfterCharacters,$laenge)" /> <xsl:variable name="erg" select="concat($vor, ' ', $nach)" /> <xsl:if test="string-length($textToBreak) > ($breakAfterCharacters * 2)"> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:value-of select="$textToBreak" /> </xsl:otherwise> </xsl:choose> </xsl:template>
Code:
<xsl:call-template name="hardLineBreak"> <xsl:with-param name="breakAfterCharacters" select="$iLinebreakAfterCharacter"/> <xsl:with-param name="textToBreak" select="'Ich_bin_ein_ziemlich_langer_Text_der_kein_Leerzeichen_hat__das_ist_schade'"/> </xsl:call-template>
MAF1981
Comment