Thread XSLT: Variablen belegen
(3 answers)
Opened by pktm at 2007-05-18 16:47
Hallo,
der Topic ist ja schon ein bißchen älter, aber vielleicht hast du dein Problem bisher nicht gelöst. Die Frage "wie ändere ich eine Variable in XSLT" muss man mit "garnicht" beantworten, denn XSLT ist eine sogenannte funktionale Programmiersprache, das heißt man muss sich von dem Gedanken frei machen, dass "Variable" Speicherstellen sind, die beliebig manipuliert werden können. Vielmehr kann man sie als Aliasses für die Ergebnisse von Berechnungen sehen (siehe auch gleich die einleitenden Passagen im oben genannten Wikipedia-Link). In XSLT 1.0 (zu 2.0 habe ich keine Erfahrung), gibt es (mindestens) 2 Möglichkeiten dein Problem zu lösen. 1) Die Berechnung in den Inhalt des xsl:variable Elements schreiben: Code: (dl
)
1 <xsl:variable name="trans"> Technische Anmerkung: Der Datentyp von $trans ist dann ein sognenanntes "Result Tree Fragment" (RTF). Dies ist hier unproblematisch, da dies hier als String interpretiert werden kann. 2) Im select-Attribut Diese Methode wird soweit ich weiss als Oliver-Becker-Methode bezeichnet. (Siehe seine Anmerkung zur substring-Funktion seiner Übersetzung der XPath-1.0-Spezifikation) Quote Wenn du sehr viele Alternativen hast, ist Methode 1 sicher vorzuziehen. HTH Update 19:25 Als 3. Methode könnte man auch eine (rekursive) Funktion (="Template" in XSLT-speak) schreiben die den gefundenen String ausgibt. Die würde man dann mit call-template an der gleichen Stelle rufen wo bei Methode 1 jetzt das choose steht.\n\n <!--EDIT|pKai|1180200463--> I sense a soul in search of answers.
|