代码之家  ›  专栏  ›  技术社区  ›  membersound

如何在XSLT Saxon模板中注入java值?

  •  0
  • membersound  · 技术社区  · 7 年前

    我正在使用 Saxon-HE (免费家庭版)解析 XML XSLT . 现在我想向xslt模板中注入一个静态值(应用程序启动的时间戳)。这样,模板的每次运行都使用相同的时间戳。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Michael Kay    7 年前

    使用静态参数

    <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) 本地日期 ,然后提供这个 DateValue 到 XdmAtomicValue.makeAtomicValue(Object)

    推荐文章