我正在使用 Saxon-HE (免费家庭版)解析 XML XSLT . 现在我想向xslt模板中注入一个静态值(应用程序启动的时间戳)。这样,模板的每次运行都使用相同的时间戳。
Saxon-HE
XML
XSLT
使用静态参数
<xsl:param name="appStartTime" as="xs:dateTime" static="yes" select="current-dateTime()"/>
可以使用为参数提供值 xsltCompiler.setParameter(QName, XdmValue)
xsltCompiler.setParameter(QName, XdmValue)
可以使用与任何其他变量引用相同的方式引用模板主体中的参数 $appStartTime .
$appStartTime
对于无名称空间参数名称 QName new QName("appStartTime") .
QName
new QName("appStartTime")
这个 XdmValue XdmAtomicValue 包含日期的。从Java开始 LocalDate ,在Saxon 9.9中,构造此函数的最佳方法可能是使用 new net.sf.saxon.DateValue(year, month, day) 本地日期 ,然后提供这个 DateValue 到 XdmAtomicValue.makeAtomicValue(Object)
XdmValue
XdmAtomicValue
LocalDate
new net.sf.saxon.DateValue(year, month, day)
本地日期
DateValue
XdmAtomicValue.makeAtomicValue(Object)