A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Mit dem Toplevel-Element xsl:function kann der Programmierer eigen definierte Funktionen erstellen. Diese gelten nur in dem Stylesheet, in dem sie definiert wurden oder in das sie importiert oder inkludiert wurden. Ist eine Funktion definiert kann sie in allen XPath-Ausdrücken im Stylesheet verwendet werden.
Der Name der Funktion wird im xsl:function-Element mit dem Attribut name bestimmt, der auch mit einem Präfix einem Namensraum zugeordnet werden kann. Die Argumente der Funktion kann mittels xsl:param als Kindelemente definiert werden.
Hierbei gilt: Die xsl:param-Instruktion müssen als erste Instruktionen in xsl:function stehen ohne andere Instruktionen davor. Den Parametern darf mit dem select-Attribut kein Defaultwert übergeben werden. Das erste Argument wird dem ersten Parameter zugeordnet, das zweite dem zweiten usw. Die definierte Funktion muss so viele Argumente enthalten, wie Parameter vorgegeben werden. Die Werte der Argumente werden bei Anwendung der Funktion an die Parameter übergeben.
Nach den Parametern kann beliebiger Template-Code stehen. Hierbei können die Parameter - und damit die Werte der Argumente - verwendet werden. Es kann auch mittels xsl:call-template Templates aufgerufen werden, jedoch nicht mit Aufrufen die einen Knotextknoten benötigen (wie xsl:apply-templates).
Die Ausgabe der Funktion bei Anwendung ist alles was innerhalb des xsl:function-Elements ausgegeben wird (jeder text, xsl:value-of- und xsl:sequence-Ausgabe uvm.) unter Verwendung der angegebenen Argumente als Parameter.
Attribute
name, as, override<?xml version="1.0"encoding="UTF-8"?> <root> <section> <para style="bold"> Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, fand er sich in seinem Bett zu einem ungeheueren Ungeziefer verwandelt. </para> </section> <section> <para style="italic"> Er lag auf seinem panzerartig harten Rücken und sah, wenn er den Kopf ein wenig hob, seinen gewölbten, braunen, von bogenförmigen Versteifungen geteilten Bauch, auf dessen Höhe sich die Bettdecke, zum gänzlichen Niedergleiten bereit, kaum noch erhalten konnte. </para> </section> <section> <para> Seine vielen, im Vergleich zu seinem sonstigen Umfang kläglich dünnen Beine flimmerten ihm hilflos vor den Augen. </para> </section> </root>
<?xml version="1.0"encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d2t="http://www.data2type.de/" version="2.0"> <xsl:function name="d2t:subtraktion"> <xsl:param name="minuend"></xsl:param> <xsl:param name="subtrahend"></xsl:param> <xsl:value-of select="($minuend)-($subtrahend)"></xsl:value-of> </xsl:function> <xsl:template match="/"> <function> <ergebnis> <xsl:value-of select="d2t:subtraktion(6,3)"></xsl:value-of> </ergebnis> <ergebnis> <xsl:value-of select="d2t:subtraktion(3,6)"></xsl:value-of> </ergebnis> <ergebnis> <xsl:value-of select="d2t:subtraktion(6,-3)"></xsl:value-of> </ergebnis> </function> </xsl:template> </xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?> <function> <ergebnis>3</ergebnis> <ergebnis>-3</ergebnis> <ergebnis>9</ergebnis> </function>
| > nach oben | |
| > zurück zur alphabetischen Liste der XSLT Elemente |