<br/> erzeugen
Weihnachtsbert
- xsl
Ein XML-Dokument
...
<text>
<![CDATA[
zeile1
zeile2
]]>
</text>
...
soll mit XSLT zu einem XHTML-Dokument
...
<p>
zeile1<br/>
zeile2
</p>
...
transformiert werden.
Ist das möglich? Wenn ja, wie?
Hi,
mit NotePad? Mit PHP? Mit Excel? Mit MSPaint? Oder etwa einfach nur mit "Suchen und Ersetzen" diverser Editoren?
E7
Hi,
sorry, hab zu spät gesehen, dass du "XLST" angegeben hast, nix für ungut...
E7
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
Hi,
<xsl:variable name="textafterbreak" select="substring-after($text, '
')" />
Frage zum Verständnis des Templates:
Wozu diese Variable?
<xsl:with-param name="text" select="$textafterbreak" />
Könnte man nicht hier
<xsl:with-param name="text" select="substring-after($text, '
')" />
verwenden, also direkt den substring?
cu,
Andreas
Hallo Andreas,
<xsl:variable name="textafterbreak" select="substring-after($text, '
')" />
Frage zum Verständnis des Templates:
Könnte man nicht hier
<xsl:with-param name="text" select="substring-after($text, '
')" />
Doch man kann.
Das ist ein altes Template von mir gewesen, vielleicht solle ich die Dinge auch wieder mal überprüfen ;-)
Grüße
Thomas