Saxon 9.2 / Java / XSLT:使用setParameters()设置变换器参数 [英] Saxon 9.2 / Java / XSLT: setting transformer parameters using setParameters()

查看:189
本文介绍了Saxon 9.2 / Java / XSLT:使用setParameters()设置变换器参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下XSLT 2.0模板:

I have the following XSLT 2.0 template:

<xsl:template name="t1">
<xsl:variable name="totalpos" as="xsd:double" select="$currentTotal"/>
..  

我很难为programmatticaly提供 currentTotal 作为变换器的参数,如下所示:

I am struggling to programmatticaly provide currentTotal as a parameter to the transformer, like this:

transformer.setParameter("currentTotal", new Double("100"))

..但没有任何正面结果:

.. but without any positive results:


/ xsl处的错误:transform / xsl:template [3] / xsl:variable [1] XPST0008:
第13行的第13行的XPath语法错误in {$ currentTotal}:
变量$ currentTotal尚未声明

Error at /xsl:transform/xsl:template[3]/xsl:variable[1] XPST0008: XPath syntax error at char 13 on line -1 in {$currentTotal}: Variable $currentTotal has not been declared

调用 setParameter( ) currentTotal 变量也将被定义,对吗?
我应该如何调用 setParameter()调用,以便在我的应用程序中定义 currentTotal 样式表里面?

When calling setParameter(), the currentTotal variable will also get defined, right? How should I invoke the setParameter() call so that the currentTotal defined in my application will be seen inside the style-sheet?

为了澄清,我正在实例化这样的变换器:

For clarification, I am instantiating the transformer like this:

System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl");
transformerFactory = new TransformerFactoryImpl();
transformer = transformerFactory.newTransformer(inputNodes);


推荐答案

参数必须在样式表中使用

Parameters have to be declared in your stylesheet using

<xsl:param name="currentTotal"/>

$ b $ c> xsl:stylesheet 元素内的

。您还可以使用选择属性或在元素主体内定义默认值。

inside the xsl:stylesheet element. You can also define a default value with the select attribute or inside the element body.

这篇关于Saxon 9.2 / Java / XSLT:使用setParameters()设置变换器参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆