2012-02-27 72 views
1

即时为网站做一个快速更新,但xslt不是我的东西,它似乎与代码我看代码生成的代码失败 - 已包括两个以下:xml xsl template with html/js内部失败

当前代码:

<?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: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> 

产生源: (你可以看到它打破了代码,而不是关闭,然后显示{$标签})我失去了什么?

<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> 

回答

0

的AVT (Attribute Value Template) convention in XSLT仅被定义为属性值 - 因为该功能的名称明确表示。

作为文本节点的一部分的大括号中的表达式未评估。需要使用<xsl:value-of>指令。

替换

url: '{$videoID}', 

url: '<xsl:value-of select="$videoID"/>', 

类似地替换

captionUrl: '{$srtID}' 

有:

captionUrl: '<xsl:value-of select="$srtID"/>' 
+0

很大,那现在显示的数据!然而,它仍然只包括jquery,没有看到萤火虫之后,在源代码中,它不关闭,我认为这可以防止休息显示..... – 2012-02-27 17:10:27

+0

@JamesBrandon:您的XSLT转换可能有其他错误 - 你需要展示一个完整的(尽可能小的以便重现问题)XML文档,一个完整的(尽可能小但重现问题)XSLT转换,你得到的完整结果,你想要的完整结果*获得以及该转换必须实施的任何规则。至于这个问题,已经完全回答了。请为其他问题提出一个新问题,并提供所有必要的信息来重现这个新问题。 – 2012-02-27 17:16:06