如何在xsl文件中包含脚本标记?

时间:2011-12-23 00:10:10

标签: xslt

我正在使用java和xsl的旧网站。如何在xsl文件中包含脚本文件?文件顶部:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:include href="shipmentPackageInfo.xsl"/>

<script src="/fs/scripts/shipment/shipment.js"></script>

打破了应用

- 更新 -

还有一个名为pageHeader.xsl的文件,其中包含

中的所有脚本标记
<xsl:output method="html"/>
  <xsl:template match="PageHeaderData">

7 个答案:

答案 0 :(得分:9)

这里似乎有一个解决方案:

http://www.webdeveloper.com/forum/archive/index.php/t-20815.html

将javascript代码放在<xsl:text>标记之间,如下所示

<script type="text/javascript">

<xsl:text>

javascript here

</xsl:text>

</script>

答案 1 :(得分:9)

看看我对XSLT wont allow me to use self-closing img and br tags

的回答

自关闭脚本标记(<script src="code.js"/&gt;)可能导致JavaScript文件无法加载,因此在XSLT中,您可能需要在脚本标记内部放置一些文本以防止其自行关闭并获取它起作用。

<script src="code.js>//</script>

答案 2 :(得分:5)

哦,我喜欢这个:

... ...
        </body>
<script language="javascript"><![CDATA[
var a_patch = function(){
    var links = document.getElementsByTagName("a");
    for (var i=0; i<links.length; i++){
        var link = links[i];
        var text = link.innerHTML;
        ... ...
    }
};
a_patch();
]]></script>
</html>

答案 3 :(得分:2)

您必须在模板块中插入脚本标记,否则它将会中断...

<xsl:template match="/">
    <script src="/fs/scripts/shipment/shipment.js"></script>
</xsl:template>

答案 4 :(得分:1)

<强> EDITED

这是一个有效的解决方案

假设这是你的xsl,你正如你所提到的那样包括xsl。在这种情况下,我称之为include.xsl。我只是调用一个名为headers的模板来管理javascript引用。

主XSLT文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 version="1.0">
    <xsl:include href="include.xsl"/>

    <xsl:template match="/">
        <xsl:call-template name="headers"/>
        <bar>
           <xsl:value-of select="root"/>
        </bar>
    </xsl:template>
</xsl:stylesheet>

include.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
   <xsl:template name="headers">
        <script src="/fs/scripts/shipment/shipment.js"></script>
   </xsl:template>
</xsl:stylesheet>

输出:

<?xml version="1.0" encoding="utf-8"?>
<script src="/fs/scripts/shipment/shipment.js"/>
<bar>foo</bar>

答案 5 :(得分:0)

 <script type="text/javascript" src="/Scripts/script.js">
     <xsl:comment>script</xsl:comment>
 </script>

答案 6 :(得分:0)

适用于的解决方案:

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output encoding='utf-8' />
    <xsl:output method="xml" omit-xml-declaration="yes" standalone="no" indent="yes" media-type="text/xhtml" />

是:

<script type="text/javascript">
    <xsl:text disable-output-escaping="yes">

         <![CDATA[

               /* Your Javascript code comes here  */

         ]]>
    </xsl:text>
    <xsl:comment>_</xsl:comment>
 </script>