2010-03-08 11 views
7

Ich glaube, ich habe möglicherweise ein Missverständnis von <xsl:variable\> und <xsl:value-of\> so vielleicht kann mich jemand korrigieren!Wert von xsl ausgeben: Variable mit xsl: Wert von Problem

Ich versuche, einige hartkodierte Banner zu zwicken etwas sauberer zu sein, so dachte ich, es eine gute Idee wäre, eine <xsl:variable> mit dem Banner-Link und Bildcode zu erstellen, dann <xml:value-of> an den verschiedenen Orten, an denen die Banner erforderlich. Zum Beispiel:

<!-- Global variable in my xslt file. There are a bunch of these... --> 
<xsl:variable name="banner1"> 
    <a href="http://www.link.com/" title="Title" target="_blank"> 
     <img width="120" height="506" src="/images/banners/image.gif" alt="alt" /> 
    </a> 
</xsl:variable> 

<!-- Then when used: --> 
<xsl:when test="blah'"> 
    <xsl:value-of select="$banner1"/> 
</xsl:when> 

Aber das produziert nicht die Ausgabe, die ich erwarte. Der Bilderpfad usw. ist gültig, aber das spuckt überhaupt nichts aus. Jeder Text, der vor oder nach dem Tag <a> hinzugefügt wurde, wird korrekt angezeigt, aber nichts zwischen den Tags <a>.

Was habe ich über <xsl:variable> missverstanden und wie könnte ich das besser machen (außer es "richtig" zu machen und Werbung aus einer Datenbank usw. zu ziehen, die ich bevorzugen würde ...).

Antwort

7

Der Wert, den Sie mit xsl: value-of auswählen, ist der Zeichenfolgenwert der Variablen.

Sie möchten das Ergebnisbaumfragment <xsl:copy-of select='$banner1' /> kopieren.

+0

Vielen Dank! Ziemlich neu für xsl und ich habe nicht gesehen, was ich anders hätte machen sollen. Prost! – xan