我有以下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);
答案 0 :(得分:1)
必须使用
在样式表中声明参数<xsl:param name="currentTotal"/>
在xsl:stylesheet
元素中。您还可以使用select
属性或元素主体内部定义默认值。