我该如何在xslt文件中包含/导入JavaScript文件/库.
我该如何在xslt文件中包含/导入JavaScript文件/库.
如果你需要在转换中使用JavaScript(例如,它包含一组在转换中被调用的扩展函数),那么你需要将JavaScript内容(至少一个JavaScript文件的内容)放在一个单独的XSLT样式表文件中,并使用适当的扩展元素(例如 <msxml:script>
)作为包含JavaScript代码的文本节点的父元素。
这里是一个非常简单的例子,使用任何Microsoft XSLT处理器(MSXML3/4/6、XslCompiledTransform或XslTransform):
文件 XSL-JS.xsl:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace">
<msxsl:script language="JScript" implements-prefix="user">
function xml(nodelist) {
return "A B C";
}
</msxsl:script>
</xsl:stylesheet>
导入 JavaScript 的文件 XSL-Main.xsl:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace">
<xsl:import href="XSL-JS.xsl"/>
<xsl:template match="/">
<xsl:value-of select="user:xml(.)"/>
</xsl:template>
</xsl:stylesheet>
当将包含在XSL-Main.xsl文件中的转换应用于任何XML文档(未使用/忽略),就会产生所需的正确结果:
A B C
完全不同的情况是,如果你只想用你的XSLT应用程序生成引用给定Javascript文件的HTML文件。
那么你可以在你的XSLT代码中包含它,并将其作为输出的一部分直接生成:
<script type="text/javascript" src="SomePath/SomeFileName.js"></script>
//
注释时,它是否有效? - undefined<msxsl:script>
吗?是的,它应该可以正常工作。 - undefined如果您想在生成的HTML文件中包含Javascript源代码,则需要使用script标签。但是,许多XSLT处理器会在标签为空时出现问题。如果一切看起来都很正常,但是当您添加脚本标签时得到空输出,请尝试在标签内插入一个不间断空格,如下所示:
<script type="text/javascript" src="SomePath/SomeFileName.js"> </script>
这就是我所做的,它对我有用。
<script>
<![CDATA[
//ADD SCRIPT HERE.
]]>
</script>
<?php
// Do XLST Loading here
?>
<script>
//Do javascript here
</script>