5

次のコードにyoutubeIdパラメータを挿入するにはどうすればよいですか?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]>
<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxml="urn:schemas-microsoft-com:xslt"
                xmlns:YouTube="urn:YouTube"
    xmlns:umbraco.library="urn:umbraco.library"
    exclude-result-prefixes="msxml umbraco.library YouTube">


<xsl:output method="xml" omit-xml-declaration="yes"/>

 <xsl:param name="videoId"/>
<xsl:template match="/">
 <a href="{$videoId}">{$videoId}</a>

<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/{$videoId}&amp;hl=en"></param>
<param name="wmode" value="transparent"></param>
<embed src="http://www.youtube.com/v/{$videoId}&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed>
</object>$videoId {$videoId} {$videoId}
 <xsl:value-of select="/macro/videoId" />
</xsl:template>

</xsl:stylesheet>

<xsl:value-of select="/macro/videoId" />実際にはvideoIdを出力しますが、他のすべてのオカレンスは出力しません。

UmbracoCMSでマクロを作成しています。パラメータはXSLTに正しく渡されます(実際にその値を出力するため)。この値をsrc属性に挿入するにはどうすればよいですか?

4

2 に答える 2

21
 <a href="{$videoId}">{$videoId}</a>

ここで使用する必要があり<xsl:value-of select="$videoId"/>ます:

<a href="{$videoId}"><xsl:value-of select="$videoId"/></a>

属性値内でAVT({$videoId})を使用している場合は常に、これはすべての属性を除いて機能する必要がありselectます。

最後のケースでは、次を使用できます。

<xsl:value-of select="/macro/*[name()=$videoId]" />

これらすべてが変換に反映されると、すべての場合に機能します

<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]>
<xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxml="urn:schemas-microsoft-com:xslt"
                xmlns:YouTube="urn:YouTube"
    xmlns:umbraco.library="urn:umbraco.library"
    exclude-result-prefixes="msxml umbraco.library YouTube">


<xsl:output method="xml" omit-xml-declaration="yes"/>

 <xsl:param name="videoId" select="'XXX'"/>
<xsl:template match="/">
 <a href="{$videoId}"><xsl:value-of select="$videoId"/></a>

<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/{$videoId}&amp;hl=en"></param>
<param name="wmode" value="transparent"></param>
<embed src="http://www.youtube.com/v/{$videoId}&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed>
</object><xsl:value-of select="concat($videoId, ' ', $videoId, ' ', $videoId)"/>
 <xsl:value-of select="/macro/*[name()=$videoId]" />
</xsl:template>

</xsl:stylesheet>
于 2010-05-06T13:43:09.487 に答える
1

これにも役立つパッケージを入手することをお勧めします。

http://our.umbraco.orgは素晴らしく、パッケージは常に追加されています。

クイック検索により、いくつかのオプションが明らかになります。

http://our.umbraco.org/projects/tag/youtube#projectList

于 2010-05-11T20:15:01.917 に答える