我刚刚开始尝试了解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>
。)