Zeilenumbruch in XML -> XSL -> HTML (erneut)
Jakson
- html
Hi
Dank dieses Artikels "http://forum.de.selfhtml.org/archiv/2003/1/t36770/"
funktioniert der Zeilenumbruch wunderbar.
Nur hab ich jetzt das Problem das der Text mit dem Zeilenumbruch jetzt nicht mehr im Knoten Inhalt steht sondern als Variable des Knotens.
---- LineBreak.xml ---------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="LineBreak.xsl" ?>
<Data Value="4 5
6
7">0 1
2
3
</Data>
----------------------------------------------
---- LineBreak.xsl ---------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="Umbruch">
<xsl:param name="Text" />
<xsl:choose>
<xsl:when test="contains($Text, '
')">
<xsl:value-of select="substring-before($Text, '
')" />
<!-- ¶ -->
<br />
<xsl:call-template name="Umbruch">
<xsl:with-param name="Text" select="substring-after($Text,'
')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$Text" /><!-- ¶ -->
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:variable name="ascii"> 	
 
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</xsl:variable>
<xsl:variable name="hex" >0123456789ABCDEF</xsl:variable>
<xsl:template name="InHex">
<xsl:param name="Text"/>
<xsl:if test="$Text">
<xsl:variable name="first-char" select="substring($Text,1,1)"/>
<xsl:variable name="ascii-value" select="string-length(substring-before($ascii,$first-char))"/>
<xsl:variable name="hex-digit1" select="substring($hex,floor($ascii-value div 16) + 1,1)"/>
<xsl:variable name="hex-digit2" select="substring($hex,$ascii-value mod 16 + 1,1)"/>
<xsl:value-of select="concat($hex-digit1,$hex-digit2)"/> <!-- ,'[',$first-char,']' -->
<xsl:if test="string-length($Text) > 1">
<xsl:text> </xsl:text>
<xsl:call-template name="InHex">
<xsl:with-param name="Text" select="substring($Text,2)"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:template>
<xsl:template match="/Data">
<html>
<head>
<title><xsl:value-of select="/SOBInfo/GlobalInfo/GL_Title" /></title>
<link rel="stylesheet" type="text/css" href="Global.css" />
</head>
<body>
<table border="1">
<tr><th></th><th>Inhalt</th><th>Wert</th></tr>
<tr>
<td>Ohne umbruch</td>
<td><xsl:value-of select="." /></td>
<td><xsl:value-of select="@Value" /></td>
</tr>
<tr>
<td>Mit umbruch</td>
<td><xsl:call-template name="Umbruch"><xsl:with-param name="Text" select="." /></xsl:call-template></td>
<td><xsl:call-template name="Umbruch"><xsl:with-param name="Text" select="@Value" /></xsl:call-template></td>
</tr>
<tr>
<td>In HEX</td>
<td><xsl:call-template name="InHex"><xsl:with-param name="Text" select="." /></xsl:call-template></td>
<td><xsl:call-template name="InHex"><xsl:with-param name="Text" select="@Value" /></xsl:call-template></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------
Im Internetexplorer (8.0) funktioniert das Script im Firefox (3.6.13) leider nicht.
Jetzt ist die große Frage was muss ich ändern damit es im Firefox auch funktioniert?