java - <msxsl :script> element with Java or JS 的用法

标签 java xslt msxsl

我有一个自定义的 Java 函数,它可以执行某些操作,我需要将其放入 XSL,以便它可以在选定的节点上执行某些操作。我是这样使用的:

<msxsl:script implements-prefix="user" language="java">
   <![CDATA[
public String doSomething(String input) { 

    // does something
    return result;
}
]]></msxsl:script>

声明命名空间:

 ... xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" xmlns:user="example.com">

并调用:

<xsl:variable name="var">
    <xsl:value-of select="user:doSomething(node)"/>
</xsl:variable>

这导致了“无法编译样式表”错误。

还尝试用Javascript替换java代码,错误是相同的。

您知道如何正确执行此操作或使用其他方法将 Java 代码插入到 XSL 中并调用它吗?

最佳答案

从 XSLT 调用其他语言(例如 Java 或 Javascript)的机制取决于您所使用的 XSLT 处理器,并且通常它们不能跨处理器移植。 msxsl:script 机制专门用于 Microsoft 的 MSXML。

现在唯一常用的两种 Java 处理器是 Xalan 和 Saxon,它们都有调用 Java 代码的机制。这些机制相似,但在许多细节上有所不同。但正如 Martin Honnen 指出的那样,XSLT 2.0(或 3.0)比 1.0 更不需要扩展函数。

关于java - <msxsl :script> element with Java or JS 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42780592/

相关文章:

xml - 如何将 XML 保存到文件

java - find Minimum window substring - leetcode - 解决方案不工作

xml - XSLT - 使用配置节点按子节点过滤父节点时出现问题

java - 没有关系的 Hibernate 惰性对象

xml - XSL : Determine sequence across ancestors

xml - 如何获取 xml 文件中特定值的值?

c# - 如何在 XsltArgumentList msxsl 中传递动态创建的 xml

java - 使用 Jaxb 解码 MixedContent 返回带有 null 变量的对象

java - 有没有办法从其子 fragment 之一获取 ViewPager 适配器?