2010-08-08 34 views
0

我有以下XSLT 2.0模板:撒克逊9.2/Java的/ XSLT:使用setParameters()设置变压器参数

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

我很努力programmatticaly提供currentTotal作为参数传递给变压器,就像这样:

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

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

错误在/ XSL:变换/ XSL:温度迟[3]/XSL:变量[1] XPST0008:在炭13上线 XPath语法错误-1 {$ currentTotal}: 变量$ currentTotal尚未声明

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

<xsl:param name="currentTotal"/> 

xsl:stylesheet元素中

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

回答

1

参数在样式表中声明:

为了澄清,我实例化变压器这样的。您还可以使用select属性或在元素内部定义默认值。

+0

的确,我需要定义变量。我期待它在setParameter时定义,但我错了。 对不起,我迟到了,我正在度假。 谢谢! – user414366 2010-08-20 19:01:48