2010-08-08 2 views
0

У меня есть следующий XSLT 2.0 шаблон:Saxon 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: 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

Параметров должны быть объявлены в таблице стилей, используя

<xsl:param name="currentTotal"/> 

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

+0

Действительно, мне нужно определить переменную. Я ожидал, что это будет определено, когда я устанавливаю параметр, но я ошибался. Извините, мой поздний чек, я был в отпуске. Спасибо! – user414366

Смежные вопросы