Saxon 9.2 / Java / XSLT: настройка параметров преобразователя с помощью setParameters () - PullRequest
0 голосов
/ 08 августа 2010

У меня есть следующий шаблон 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 на 13-м символе в строке -1 в {$ currentTotal}: Переменная $ currentTotal не была объявлена ​​

При вызове setParameter() переменная currentTotal также будет определена, верно? Как мне вызвать вызов setParameter(), чтобы currentTotal, определенный в моем приложении, был виден внутри таблицы стилей?

Для пояснения, я создаю экземпляр трансформатора следующим образом:

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

1 Ответ

1 голос
/ 09 августа 2010

Параметры должны быть объявлены в вашей таблице стилей с помощью

<xsl:param name="currentTotal"/>

внутри элемента xsl:stylesheet. Вы также можете определить значение по умолчанию с помощью атрибута select или внутри тела элемента.

...