使用xslt嵌入视频播放器

时间:2011-06-03 14:45:58

标签: xml xslt embed tumblr

在我的xml数据中,有一个节点包含视频播放器的嵌入脚本

我如何将它放入我的xsl文件

带有''视频播放器''的xml部分:

<post>
<video-player><span id="video_player_6108595387">[<a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank">Flash 10</a> is required to watch video.]</span><script type="text/javascript">renderVideo("video_player_6108595387",'http://mydomain.tumblr.com/video_file/6108595387/tumblr_lm64ngkwu81qjb4vj',400,225,'poster=http%3A%2F%2Fmedia.tumblr.com%2Ftumblr_lm64ngkwu81qjb4vj_frame1.jpg,http%3A%2F%2Fmedia.tumblr.com%2Ftumblr_lm64ngkwu81qjb4vj_frame2.jpg,http%3A%2F%2Fmedia.tumblr.com%2Ftumblr_lm64ngkwu81qjb4vj_frame3.jpg,http%3A%2F%2Fmedia.tumblr.com%2Ftumblr_lm64ngkwu81qjb4vj_frame4.jpg,http%3A%2F%2Fmedia.tumblr.com%2Ftumblr_lm64ngkwu81qjb4vj_frame5.jpg')</script></video-player>

我的xsl尝试使用''视频播放器'失败了:

<div><xsl:value-of select="video-player" disable-output-escaping="yes"/></div>

使用带有''audio-player''的节点可以正常工作。

带音频播放器的xml部分:

<audio-player><embed type="application/x-shockwave-flash" src="http://assets.tumblr.com/swf/audio_player.swf?audio_file=http://www.tumblr.com/audio_file/5046352702/tumblr_lkffpeQVub1qjb4vj&color=FFFFFF" height="27" width="207" quality="best"></embed></audio-player>

xsl使用''audio-player''

<div><xsl:value-of select="audio-player" disable-output-escaping="yes"/></div>

1 个答案:

答案 0 :(得分:0)

您显然正在尝试将<video-player>元素及其内容(<span>等)复制到输出HTML。为此,请使用<xsl:copy-of>代替<xsl:value-of>。后者将其参数作为字符串进行计算,并将所有后代文本节点连接起来。前者复制其参数的元素/子结构。

所以你需要:

<div><xsl:copy-of select="video-player" /></div>

除非你知道自己在做什么,否则我建议你不要使用disable-output-escaping。这通常表明有人不理解标记和文档结构之间的区别,因此他们使用锤子来驱动螺钉。

使用<xsl:value-of>复制<audio-player>的示例XSL应仅输出<audio-player>元素的文本内容,即根本不输出任何内容。