我将一个XSLT视频播放器宏从Umbraco 4.7.2站点复制到我们拥有的另一个Umbraco 4.0站点。
宏是相同的但是复制的宏没有在4.0中运行,它不会产生任何HTML或错误,所有宏参数都保持值。
这两个版本之间是否有一些语法差异,还是我犯了错误? XSLT不是我的母语,我更像是一个剃刀人。
有人能指出我这个问题吗?
XSLT代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:Stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxml="urn:schemas-microsoft-com:xslt" xmlns:umbraco.library="urn:umbraco.library" version="1.0" exclude-result-prefixes="msxml umbraco.library">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<!-- set up vars -->
<xsl:variable name="vidToPlay" select="/macro/vidToPlay"/>
<xsl:variable name="previewImage" select="/macro/previewImage"/>
<!-- END set up vars -->
<xsl:template match="/">
<!-- start writing XSLT -->
<xsl:if test="$vidToPlay != '' and $previewImage != '' ">
<xsl:variable name="showMe" select="umbraco.library:GetMedia($vidToPlay/node/@id, 0)/data [@alias = 'umbracoFile']"/>
<xsl:variable name="preview" select="umbraco.library:GetMedia($previewImage/node/@id, 0)/data [@alias = 'umbracoFile']"/>
<video controls="" poster="{$preview}">
<source src="{$showMe}" type="video/mp4"/>
<object width="640" height="360" type="application/x-shockwave-flash" data="/media/12209/player.swf">
<!-- Firefox uses the `data` attribute above, IE/Safari uses the param below -->
<param name="movie" value="/media/12209/player.swf"/>
<param name="flashvars" value="controlbar=over&file={$showMe}"/>
</object>
</video>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
在XML架构更改之前,显示的XSLT来自之前的Umbraco版本。
<xsl:variable name="showMe" select="umbraco.library:GetMedia($vidToPlay/node/@id, 0)/data [@alias = 'umbracoFile']"/>
<xsl:variable name="preview" select="umbraco.library:GetMedia($previewImage/node/@id, 0)/data [@alias = 'umbracoFile']"/>
这些行应
<xsl:variable name="showMe" select="umbraco.library:GetMedia($vidToPlay/node/@id, 0)/umbracoFile"/>
<xsl:variable name="preview" select="umbraco.library:GetMedia($previewImage/node/@id, 0)/umbracoFile"/>
来自Umbraco维基的更多关于GetMedia的信息:http://our.umbraco.org/wiki/reference/umbracolibrary/getmedia