如何在 xslt 中包含 javaScript 文件

IT技术 javascript xslt web
2021-03-03 08:13:05

如何在 xslt 文件中包含/导入 javaScript 文件/库。

4个回答

如果您需要在转换中使用 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> 

如果您尝试在生成的 HTML 文件中包含 Javascript 源代码,那么脚本标记就是方法。但是,如果标签为空,许多 XSLT 处理器会卡住。如果一切正常,但在添加脚本标签时输出为空,请尝试在标签中插入一个不间断空格,如下所示:

<script type="text/javascript" src="SomePath/SomeFileName.js">&#160;</script> 
哇,真棒 !谢谢,我在使用 .NET XsltTransform 库时遇到问题。
2021-04-28 08:13:05

这就是我所做的,它对我有用。

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

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

为了使用 vanilla Javascript 或 JS 中的任何框架,您需要使用 PHP 的外部页面。在你的 PHP 处理完之后,你就可以以 <script></script> 的格式编写它下面的 JS。您可以使用 DOM 直接在页面上产生效果。

<?php

// Do XLST Loading here

?>

<script>
//Do javascript here
</script>