0

我有以下 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: XPath 语法错误在 {$currentTotal} 中第 -1 行的字符 13: 变量 $currentTotal 尚未声明

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

为了澄清起见,我正在像这样实例化转换器:

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

1 回答 1

1

必须使用在样式表中声明参数

<xsl:param name="currentTotal"/>

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

于 2010-08-08T22:19:38.413 回答