Как ввести значение Java в саксонский шаблон XSLT? - PullRequest
0 голосов
/ 13 декабря 2018

Я использую Saxon-HE (бесплатная домашняя версия) для анализа XML файлов с XSLT.Теперь я хочу добавить статическое значение (временную метку запуска приложения) в шаблон xslt.Чтобы при каждом запуске шаблона использовалась одна и та же временная метка.

Возможно ли это вообще?

1 Ответ

0 голосов
/ 13 декабря 2018

Использовать статический параметр

<xsl:param name="appStartTime" as="xs:dateTime" 
           static="yes" select="current-dateTime()"/>

Вы можете указать значение параметра, используя xsltCompiler.setParameter(QName, XdmValue), или по умолчанию будет использоваться дата / время, когда таблица стилей была скомпилирована.

Вы можете ссылаться на параметр в теле шаблона так же, как и на любую другую переменную, используя $appStartTime.

Для имени параметра без пространства имен можно указать QName как, дляпример new QName("appStartTime").

XdmValue в вашем случае будет XdmAtomicValue с датой.Начиная с Java LocalDate, в Saxon 9.9 лучший способ построить это, вероятно, использовать new net.sf.saxon.DateValue(year, month, day) извлечение полей из LocalDate, а затем предоставить DateValue в XdmAtomicValue.makeAtomicValue(Object).

...