Jakson: Zeilenumbruch in XML -> XSL -> HTML (erneut)

Beitrag lesen

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, '&#xA;')">  
   <xsl:value-of select="substring-before($Text, '&#xA;')" />  
<!--   &#182; -->  
   <br />  
   <xsl:call-template name="Umbruch">  
    <xsl:with-param name="Text" select="substring-after($Text,'&#xA;')" />  
   </xsl:call-template>  
  </xsl:when>  
  <xsl:otherwise>  
   <xsl:value-of select="$Text" /><!-- &#182; -->  
  </xsl:otherwise>  
 </xsl:choose>  
</xsl:template>  
  
<xsl:variable name="ascii">         &#x9;&#xA;  &#xD;                   !"#$%&amp;'()*+,-./0123456789:;&lt;=&gt;?@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) &gt; 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?