当前位置: 首页 > 知识库问答 >
问题:

使用Saxon-HE9.6从XSLT调用实例方法

陆琦
2023-03-14

我们有一个用例,我们必须从Xlst模板调用实例方法。我们使用的是Saxon-He9.6版本。穿过了这个堆栈溢出的柱子。我们尝试用Java对象作为参数pssing XML transformer,然后更新模板以调用该实例方法。但它给出了javax.xml.Transform.TransformerConfigurationException。

如果我们可以使用Saxon HE从XSLT模板中调用实例方法,是否有人可以提供帮助?

Java对象:

public Double getValue(String s1, String s2, Double d1) {
    // perform some operation and call other service to fetch data.
    Double response = 2.0;
    return response;
}

Xlst模板:已添加:

xmlns:util="java:com.test.utils.TestUtils"

<!--<xsl:value-of select="util:getValue($utils, $country1, $country2, $value)"/>

将此util对象传递给xlst的代码

Transformer transformer = factory.newTransformer(xsltTemplate);
transformer.setParameter("utils", util);

共有1个答案

陈浩
2023-03-14

不,此功能在Saxon-He中不可用。还有其他选择:请参阅www.saxonica.com文档中的“扩展性”一节。

还要注意,9.6是一个相当旧的版本。由于Saxon在开发XSLT 2.0和3.0规范草案时一直跟踪它们,因此最好避免使用该产品的旧版本,因为这些规范在产品发布时处于不断变化的状态。

 类似资料:
  • 我正在使用Saxon的ANT任务将XSLT应用于XML。以下是我创建的蚂蚁目标: 当XSLT放在项目中的上述文件夹中时,它可以正常工作。但是现在,我需要将XSLT打包为jar的一部分,以便能够将代码分发给第三方客户端。我屏蔽了XSLT,但是现在无法引用它(即使在删除了之后)。在使用Saxon时,是否有不同的方法来引用作为jar一部分的XSLT?

  • 我正在使用Saxon(如果需要,我可以使用Xalan)XSLT处理器进行一些转换。我想将下面对象的实例作为参数传递给XSLT模板。 所以我创建了这个对象。 在XSLT文件中,我将参数声明为: 现在我的问题是如何在XSLT内调用该对象的任何实例方法(即.getValue())?有可能吗?我知道我可以调用不同Java类的静态方法,但这并不完全是我想要的。 此外,是否可以在XSLT中填充Java对象,即

  • 问题内容: 我有一系列XML文件,这些文件引用XSLT文件以在浏览器中呈现为HTML。其中一些链接会在常规页面上执行AJAX调用以请求HTML,并将其插入页面上已有的DIV中。 我想做的是从该页面调用链接的Web服务,然后接收XML,然后以与原始页面相同的方式将其处理为HTML,然后通过AJAX插入当前页面的DIV中。 我的问题是:我将如何获取Javascript下载的XML并使用Javascri

  • 我在我的项目中使用Fuse 6.1和camel 2.12版本,并面临以下问题。我试图将java.util.HashMap传递到我的xslt,并访问map以检索我的XSLT中的一堆值。为此,我构建了一个映射,并将其放在bean的头中,并访问它XSLT。我创建了一个测试用例来运行此路线,一切都运行良好,能够在XSLT中访问映射,XSLT正在编译良好,并生成预期的XML,如果我在类路径中net.sf.s

  • 当我运行我的xsl样式表时,我需要知道是否存在一些文件。因为xslt没有本地方法来测试文件是否存在(ASFAIK),所以我想用javascript来做这件事。通常我使用saxon 9 HE,但是一些同事告诉我HE版本不支持javascript函数。有没有一种方法可以用saxon 9 HE执行java脚本函数? 我尝试过这个例子:如何在xslt中包含javaScript文件,但oxygen给了我一个

  • 问题内容: 我正在使用Mozilla Rhino JavaScript模拟器。它允许我将Java方法添加到上下文中,然后像调用JavaScript函数一样调用它们。但是我无法使用它,除非使用静态方法。 问题是文档的这一部分: 如果该方法不是静态的,则Java的“ this”值将对应于JavaScript的“ this”值。任何使用不正确的Java类型的’this’值调用该函数的尝试都会导致错误。