使用xsl:value-of问题输出xsl:variable的值

时间:2010-03-08 13:28:34

标签: xslt variables value-of

我想我可能对<xsl:variable\><xsl:value-of\>有误解,所以也许有人可以纠正我!

我正在尝试调整一些硬编码横幅以使其更清洁,所以我认为创建包含横幅链接和图像代码的<xsl:variable>是个好主意,然后使用<xml:value-of>需要横幅的各个地方。例如:

<!-- 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>

但这并没有产生我期望的输出。图像路径等是有效的,但这根本不会吐出任何东西。在<a>标记之前或之后添加的任何文本都会正确显示,但<a>标记之间没有任何内容。

我对<xsl:variable>有什么误解?我怎么能更好地做到这一点(除了“正确地”并且从我喜欢的数据库中提取广告......)。

1 个答案:

答案 0 :(得分:7)

使用xsl选择的值:value-of是变量的字符串值。

您希望<xsl:copy-of select='$banner1' />复制结果树片段。