Saxon 9.2 / Java / XSLT:使用setParameters()设置变换器参数

时间:2010-08-08 14:20:09

标签: java xslt saxon transformer

我有以下XSLT 2.0模板:

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

我正在努力将currentTotal作为参数提供给变换器,如下所示:

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

..但没有任何积极的结果:

  

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

调用setParameter()时,currentTotal变量也会被定义,对吧? 我应该如何调用setParameter()调用,以便在样式表中看到我的应用程序中定义的currentTotal

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

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

1 个答案:

答案 0 :(得分:1)

必须使用

在样式表中声明参数
<xsl:param name="currentTotal"/>

xsl:stylesheet元素中。您还可以使用select属性或元素主体内部定义默认值。