在 <a> Symphony CMS 中的标记中使用 XSL 元素 (?) 作为 URL



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

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

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

我只需要我的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>

你不能写

<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>。)

相关内容

  • 没有找到相关文章

最新更新