встроить видео плеер с помощью xslt - PullRequest
0 голосов
/ 03 июня 2011

в моих данных xml есть узел, содержащий скрипт для встраивания видео плеера

как мне вставить это в мой xsl файл

xml с помощью '' video-player '':

<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 не удалась при попытке использовать '' video-player '':

<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 с использованием '' аудиоплеера ''

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

1 Ответ

0 голосов
/ 03 июня 2011

Вы, очевидно, пытаетесь скопировать элемент <video-player> с его содержимым (<span> и т. Д.) В выходной HTML. Для этого используйте <xsl:copy-of> вместо <xsl:value-of>. Последний оценивает свой аргумент как строку, принимая конкатенацию всех текстовых узлов-потомков. Первый копирует элемент / дочернюю структуру своего аргумента.

Итак, вам нужно:

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

Я бы предложил не использовать disable-output-escaping, если вы не знаете, что делаете. Обычно это признак того, что кто-то не понимает разницы между разметкой и структурой документа, поэтому они используют молоток для ввинчивания винта.

Ваш образец XSL, использующий <xsl:value-of> для копирования <audio-player>, должен выводить только текстовое содержимое элемента <audio-player>, т. Е. Вообще ничего.

...