如何在xslt中包含javaScript文件

How to include javaScript file in xslt

本文关键字:包含 javaScript 文件 xslt      更新时间:2023-09-26

如何在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>
XSL-Main

文件。正在导入javascript的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> 

如果您试图在生成的HTML文件中包含Javascript源代码,则使用script标记。但是,如果标记为空,许多XSLT处理器将会阻塞。如果一切看起来都很好,但是当您添加脚本标记时,您得到空输出,请尝试在标记中插入一个非换行空间,如:

<script type="text/javascript" src="SomePath/SomeFileName.js">&#160;</script> 

我就是这么做的,而且效果很好。

<script>
<![CDATA[
   //ADD SCRIPT HERE.
]]>
</script>

参考:https://www.w3schools.com/xml/dom_nodes_traverse.asp

为了使用普通Javascript或JS中的任何框架,您需要使用PHP的外部页面。PHP处理之后,您可以在格式。您可以直接从那里使用DOM对页面产生影响。

<?php
// Do XLST Loading here
?>
<script>
//Do javascript here
</script>