Xml XSL文件中嵌入的Youtube视频
所以我有一个XSL文件,我希望有一个嵌入的youtube视频可以在同一页面上显示和播放,而不用带我去youtube。我有嵌入的代码,我试着使用Xml XSL文件中嵌入的Youtube视频,xml,xslt,xslt-1.0,xslt-2.0,Xml,Xslt,Xslt 1.0,Xslt 2.0,所以我有一个XSL文件,我希望有一个嵌入的youtube视频可以在同一页面上显示和播放,而不用带我去youtube。我有嵌入的代码,我试着使用 [注意:我已经为每个参数输入了我的值] <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="
[注意:我已经为每个参数输入了我的值]
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" encoding="UTF-8"/>
<xsl:param name="contextPath">CONTEXT_PATH/</xsl:param>
<xsl:include href="xhtml.xsl"/>
<xsl:variable name="site" select="/home/tree/path/node[2]/@name"/>
<xsl:template match="home">
<xsl:element name="div">
<xsl:attribute name="id">content-type</xsl:attribute>
<xsl:attribute name="class">home</xsl:attribute>
<xsl:choose>
<xsl:when test="$site='Chameleon'">
<xsl:call-template name="video-media">
<xsl:with-param name="width" select="640"/>
<xsl:with-param name="height" select="348"/>
<xsl:with-param name="element" select="video-url"/>
</xsl:call-template>
<xsl:template name="video-media">
<xsl:param name="element" select="video-url" />
<xsl:param name="width" select="640"/>
<xsl:param name="height" select="348"/>
<xsl:param name="color" select="'ffffff'"/>
<xsl:param name="title" select="'0'"/>
<xsl:param name="byline" select="'0'"/>
<xsl:param name="portrait" select="'0'"/>
<xsl:param name="frameborder" select="'0'"/>
<xsl:param name="video-id">
<xsl:choose>
<xsl:when test="contains($element,'youtube.com/watch?v=Bctaf7alxpE')">
<xsl:value-of select="substring-after($element,'youtube.com/watch?v=Bctaf7alxpE')"/>
</xsl:when>
<xsl:when test="contains($element,'youtube.com/v/Bctaf7alxpE')">
<xsl:value-of select="substring-after($element,'youtube.com/v/Bctaf7alxpE')"/>
</xsl:when>
<xsl:when test="contains($element,'youtu.be/Bctaf7alxpE')">
<xsl:value-of select="substring-after($element,'youtube.com/watch?v=Bctaf7alxpE')"/>
</xsl:when>
</xsl:choose>
</xsl:param>
<div class="video-container">
<xsl:choose>
<xsl:when test="contains($element,'youtube.com') or contains($element, 'youtu.be')">
<iframe class="youtube-player" type="text/html" width="560" height="315" src="http://www.youtube.com/embed/Bctaf7alxpE" frameborder="0">
<xsl:comment> You Tube Player </xsl:comment>
</iframe>
</xsl:when>
</xsl:choose>
</div>
</xsl:template>
</xsl:when>
<xsl:when test="$site='anotherSite'">
<!-- Does Something Different here... -->
</xsl:when>
<xsl:otherwise>
<!-- Perform a default action here .... -->
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
[我的申请日志]
2014-09-11 17:28:41731警告com。[我的应用程序/项目树]-缺少参数,因此无法查找页面
我并不是真的担心日志,但我得到一个空值这一事实确实令人沮丧,因为我为每个参数都指定了一个值。如果没有看到您的问题的完整的、最小的示例,很难说清楚,但是考虑到您发布的XSLT片段,这里有几种可能性:
xsl:call-template
不是
xsl:stylesheet
。也许你在你的原始代码中就有它,
但考虑到代码片段的发布方式,还不清楚
这个问题@select
属性和子元素
(xsl:choose
)作为video id
参数
应该是
。(顺便说一句,..
可以简化为..
)…
必须
移动为xsl:stylesheet
的子级
模板必须是
的子级。但是,在另一个名为
的模板中,我想调用
模板,以允许嵌入的视频在
模板中播放 这是通过以下代码实现的:
,给定@选择中的参数值
谢谢你的帮助 你是说“xsl:call-template”应该在xsl:stylesheet之前调用@kjhughesI会注意到,根据显示的片段,模板“video media”被称为“width”、“height”和“element”,仅此而已。其余的参数没有传入。不,xsl:stylesheet
是根元素;没有元素出现在它之前或之后。我的意思是xsl:call-template
应该放在另一个命名或匹配的模板中(例如
这里
)。@KevinBrown我还试图注释掉
中没有调用的其他无关参数,但是我仍然得到错误,它缺少一些参数。我改进了编辑,并添加了比前一个片段更清晰的内容。不要担心另一个从基本错误到基本错误的颠簸最好通过查看介绍性XSLT材料来消除;这将是我最后一次回答这个问题。谢谢
java.lang.NullPointerException
ERROR: 'null'
FATAL ERROR: 'Could not compile stylesheet'