使用XSL元素(?)作为<a> tag in Symphony CMS</a>中的URL

时间:2013-11-21 15:54:11

标签: xml xslt symphony-cms

我刚刚开始试图了解Symphony和基于XML / XSL的模板等(我甚至不知道正确的术语,所以原谅我)。

我在Symphony中有一个视频部分,其中一个输入字段用于YouTube网址。我显然不能只写<a href="<xsl:value-of select="youtube-url"/>">Video</a>,但我真的不确定应该怎么做。

我做了一些谷歌搜索,发现xml / xsl或其他任何支持变量,所以我认为这是一个很好的喊叫,但正如你在下面的代码示例中看到的,无论我做了什么,它都失败了。也许我只是使用变量错了?我不知道。

我只需要将我的Youtube-URL放在我目前拥有的空间{$ youtube}

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="../utilities/master.xsl"/>
<xsl:variable name="youtube"> 
    <xsl:value-of select="youtube-url"/>
</xsl:variable>
<xsl:template match="data">
    <div class="video-container">
        <xsl:apply-templates select="videos/entry"/>
    </div>
</xsl:template>
<xsl:template match="videos/entry">
    <div class="video">
        <div class="video-title"><xsl:value-of select="title"/></div>
        <div class="video-player">
            {$youtube}
        </div>
        <div class="video-desc"><xsl:value-of select="description"/></div>
    </div>
</xsl:template>
</xsl:stylesheet>

1 个答案:

答案 0 :(得分:1)

你不能写

<a href="<xsl:value-of select="youtube-url"/>">Video</a> 

但你可以写

<a href="{youtube-url}">Video</a> 

<a href="{$youtube}">Video</a> 

这是属性值模板

它只适用于属性内部。您不能在其他文本中使用它。 (<div class="video-player">{$youtube}</div>之类的内容无效 - 请改用<xsl:value-of>。)