内部包含html/js的xml xsl模板失败
我正在为一个站点做一个快速更新,但xslt不是我的专长,它似乎与我在生成的源代码中看到的代码有关——包括以下两个方面: 当前代码:内部包含html/js的xml xsl模板失败,xml,xslt,Xml,Xslt,我正在为一个站点做一个快速更新,但xslt不是我的专长,它似乎与我在生成的源代码中看到的代码有关——包括以下两个方面: 当前代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:tagsLib="urn:tagsLib"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets tagsLib ">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<xsl:template match="/">
<xsl:if test="string-length($currentPage/mp4videoLinkId) > 0">
<xsl:variable name="videoID" select="$currentPage/mp4videoLinkId" />
<xsl:variable name="srtID" select="$currentPage/mp4videoSRTId" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="flowplayer-3.2.6.min.js"></script>
<script src="flowplayer.ipad-3.2.2.min.js"></script>
<!-- player container-->
<a href="{$videoID}" style="display:block;width:473px;height:310px;" id="ipad"></a>
<script type="text/javascript">
$f("ipad", "flowplayer-3.2.7.swf",{
clip: {
autoPlay: false,
url: '{$videoID}',
// this is the Timed Text file with captions info
captionUrl: '{$srtID}'
},
plugins: {
captions: {
url: 'flowplayer.captions-3.2.3.swf',
// pointer to a content plugin (see below)
captionTarget: 'content'
},
// configure a content plugin to look good for our purpose
content: {
url:'flowplayer.content-3.2.0.swf',
bottom: 25,
width: '80%',
height:40,
backgroundColor: 'transparent',
backgroundGradient: 'none',
borderRadius: 4,
border: 0,
textDecoration: 'outline',
style: {
body: {
fontSize: 14,
fontFamily: 'Arial',
textAlign: 'center',
color: '#ffffff'
}
}
}
}
}).ipad();
</script>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
$f(“ipad”、“flowplayer-3.2.7.swf”{
剪辑:{
自动播放:错误,
url:“{$videoID}”,
//这是带有标题信息的定时文本文件
标题URL:“{$srtID}”
},
插件:{
标题:{
url:'flowplayer.captions-3.2.3.swf',
//指向内容插件的指针(见下文)
字幕目标:“内容”
},
//配置一个内容插件,使其符合我们的目的
内容:{
url:'flowplayer.content-3.2.0.swf',
底数:25,
宽度:“80%”,
身高:40,
背景色:“透明”,
背景梯度:“无”,
边界半径:4,
边界:0,
text装饰:“大纲”,
风格:{
正文:{
尺寸:14,
fontFamily:“Arial”,
textAlign:'中心',
颜色:“#ffffff”
}
}
}
}
}).ipad();
生成源:
(正如您看到的,它破坏了代码,没有关闭,然后显示了{$tags})我缺少了什么
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" /><script src="flowplayer-3.2.6.min.js" /><script src="flowplayer.ipad-3.2.2.min.js" /><a href="mp4/assist-mi-car-parking.mp4" style="display:block;width:473px;height:310px;" id="ipad" /><script type="text/javascript">
$f("ipad", "flowplayer-3.2.7.swf",{
clip: {
autoPlay: false,
url: '{$videoID}',
// this is the Timed Text file with captions info
captionUrl: '{$srtID}'
},
plugins: {
captions: {
url: 'flowplayer.captions-3.2.3.swf',
// pointer to a content plugin (see below)
captionTarget: 'content'
},
// configure a content plugin to look good for our purpose
content: {
url:'flowplayer.content-3.2.0.swf',
bottom: 25,
width: '80%',
height:40,
backgroundColor: 'transparent',
backgroundGradient: 'none',
borderRadius: 4,
border: 0,
textDecoration: 'outline',
style: {
body: {
fontSize: 14,
fontFamily: 'Arial',
textAlign: 'center',
color: '#ffffff'
}
}
}
}
}).ipad();
</script>
$f(“ipad”、“flowplayer-3.2.7.swf”{
剪辑:{
自动播放:错误,
url:“{$videoID}”,
//这是带有标题信息的定时文本文件
标题URL:“{$srtID}”
},
插件:{
标题:{
url:'flowplayer.captions-3.2.3.swf',
//指向内容插件的指针(见下文)
字幕目标:“内容”
},
//配置一个内容插件,使其符合我们的目的
内容:{
url:'flowplayer.content-3.2.0.swf',
底数:25,
宽度:“80%”,
身高:40,
背景色:“透明”,
背景梯度:“无”,
边界半径:4,
边界:0,
text装饰:“大纲”,
样式:{
正文:{
尺寸:14,
fontFamily:“Arial”,
textAlign:'中心',
颜色:“#ffffff”
}
}
}
}
}).ipad();
AVT仅为属性值定义,正如此功能的名称所明确指出的那样
作为文本节点一部分的大括号内的表达式不计算。需要使用
指令
解决方案:
url: '{$videoID}',
url: '<xsl:value-of select="$videoID"/>',
captionUrl: '{$srtID}'
更换:
url: '{$videoID}',
url: '<xsl:value-of select="$videoID"/>',
captionUrl: '{$srtID}'
与:
url: '{$videoID}',
url: '<xsl:value-of select="$videoID"/>',
captionUrl: '{$srtID}'
与:
captionUrl: '<xsl:value-of select="$srtID"/>'
captionUrl:'
太好了,现在显示的是数据!但是,它仍然只包含jquery,在firebug中没有任何内容,在源代码中它没有关闭,我认为阻止rest显示…@JamesBrandon:您的XSLT转换可能还有其他错误--您需要显示一个完整的(但尽可能小以重现问题)XML文档,一个完整的XSLT转换(尽可能小,但会重现问题)、您得到的完整结果、您想要得到的完整结果以及转换必须实现的任何规则。关于这个问题,已经完全回答了。请针对其余问题提出一个新问题,并提供重现此新问题所需的所有信息。