java - 为什么 XSL 中的内联 java 脚本不包含在服务器端 XSLT 转换中?

标签 java xml xslt

我的项目中的一个 xsl 文件中有以下代码

<xsl:template name="javascript">
    <script type="text/javascript">
     function toggleDisplay(item)
    {
         //dummy function, actual code removed            
    }

</script>
</xsl:template>

当 xslt 转换在 java 的服务器端完成时,此 java 脚本函数将不会包含在生成的 html 输出中。在服务器端 XSLT 转换的情况下,将包含单独的 js 文件。因为我是 XSLT 的新手,所以我无法通过代码理解它是如何在服务器端应用转换时跳过 XSL 文件中的 java 脚本函数的。对此的任何指导/帮助将不胜感激。

最佳答案

你的模板是名字模板,除非你调用它,否则它不会被输出。 当你想使用调用模板指令时,你应该调用你的模板:

...
<xsl:call-template name="javascript" />
...
<xsl:template name="javascript">
   <script type="text/javascript">
      function toggleDisplay(item)
      {
      //dummy function, actual code removed            
      }
   </script>
</xsl:template>

否则,如果你想在xml源文档中遇到“javascript”元素时输出你的script元素,那么你应该使用ma​​tch属性:

...
<xsl:apply-templates select="javascript" />
...
<xsl:template match="javascript">
   <script type="text/javascript">
      function toggleDisplay(item)
      {
      //dummy function, actual code removed            
      }
   </script>
</xsl:template>

关于java - 为什么 XSL 中的内联 java 脚本不包含在服务器端 XSLT 转换中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29897698/

相关文章:

java - 使用 FileProvider 打开我的应用程序中包含的 PDF?

java - struts2 fileupload最大文件大小

java - 从两个不同的类登录 xml 的正确方法是什么?现在我在生成的 xml 中遇到错误

xslt - xsl for-each 创建可迭代节点列表

xslt - 在 for-each 中仅显示一次标题

java - 使用 URLClassLoader 动态加载 JAR?

java - 使用或存储串行数据并从其他类-Java访问

xml - 如何访问 soap UI 响应 XML 的属性值

xml - 如何验证 xml 模式中的电子邮件 ID

xml - XSLT - 如何合并 XSLT 文件