2009-03-29 14 views
2

Ich versuche XSLT zu lernen. Ich werde einfach verrückt. Variablen sollten innerhalb von xsl: variables entity deklariert und instanziiert werden, wobei ihre Namen das $ -Symbol vor ihnen haben (wie Perl-Variablen), richtig? Warum in aller Welt diesen Code:Wie verwende ich den Wert von XSLT-Variablen?

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="/"> 
     <xsl:variable name="color" select="'red'" /> 
     <p>$color</p> 
    </xsl:template> 
</xsl:stylesheet> 

Ergebnisse in der Zeichenkette: „$ Farbe“ geschrieben wird, um ein einfaches, nicht leeres XML-Dokument Parsen des msxsl Parser? Vielen Dank

Antwort

17

Verwenden Sie <xsl:value-of select="$color"/> anstatt $color direkt in das Dokument zu schreiben.

Siehe auch this question.

11

Auch innerhalb Attribute, die Sie direkt, wie diese auf die Werte zu erreichen:

<span style="color:{$color}" /> 
+0

+1 - all die Jahre habe ich dafür genutzt - warum hat mir das vorher niemand gesagt! – philsquared

+0

dito ... und das Schlimmste ist, ich habe es schon mal gesehen und vergessen. :( – harpo

+0

Freut mich, etwas Freude zu verbreiten - @Phil, deine Worte sind mir ziemlich ähnlich, als ich das auch entdeckte! –

2

Warum auf der Erde diesen Code: ...

<xsl:variable name="color" select="'red'" /> <p>$color</p>

Ergebnisse in der Zeichenkette : "$ color" wird geschrieben

Weil dieser Code bedeutet: Ausgabe der Zeichenkette $ color als untergeordneter Textknoten des <p> Elements.

der Wert des $color xsl Zur Ausgabe: variable Verwendung einer der folgenden:

  • <xsl:value-of select="$color"/>
  • <xsl:copy-of select="$color"/>
2

Eine gute Faustregel für xslt: wenn es nicht in einem <xsl:foo> Tag, es ist kein Code. Es ist Ausgabe.

Verwandte Themen