hallo,
ich habe die Verwendung des o.g. Templates versucht, aber mir sind da einige Dinge nicht klar. Ich komme mehr aus der technischen Programmierung und brauche das o.g. Template eigentlich nur, um eine XML-Konfigurationsdatei über XSL im Browser zu zeigen. Einige Werte sollen dabei eben hexadezimal angezeigt werden.
Ich habe das Template in die XSL-Datei eingebunden und es wird auch ohne Fehlermeldung aufgerufen.
<xsl:template name="decimal2x">
<xs

aram name="x"/>
<xs

aram name="base"/>
<xs:variable name="symbols">0123456789ABCDEF</xs:variable>
<xs:variable name="temp">
<xs:if test="$x >= $base">
<xs:call-template name="decimal2x">
<xs:with-param name="x" select="floor($x div $base)"/>
<xs:with-param name="base" select="$base" />
</xs:call-template>
</xs:if>
</xs:variable>
<xs:value-of select="concat($temp, substring($symbols, $x mod $base +1,1))"/>
</xsl:template>
Den Aufruf habe ich in folgender Art geschrieben:
<xs:call-template name="decimal2x">
<xs:with-param name="x">233</xs:with-param>
<xs:with-param name="base">16</xs:with-param>
</xs:call-template>
Der Einfachheit halber habe ich hier einmal Zahlen (33,16) zur Berechnung übergeben.
Anschliessend versuche ich das Ergebnis der Berechnung (was ja in temp steht ?) auszulesen und in ein Tabellenfeld zu schreiben:
<td><xsl:value-of select="temp"/></td>
Aber das Feld bleibt leer. Was geht daneben ? Die Quellen habe ich mal angehängt.
mfg
Simon