0

我正在使用 Saxon 库来应用一些 XSLT 2.0 转换。

我正在尝试添加一些代码来打印两个给定日期之间的所有日期。

为此,我试图弄清楚如何使用持续时间变量。具体来说,我想取第一个日期,添加一天,打印它,然后重复直到第一个日期一直增加到第二个日期。

我在我的 XSLT 中编写了以下内容:

  <xsl:template name="get_rundatesNode">
    <xsl:param name="startDate" />
    <xsl:param name="endDate" />
    <xsl:variable name="oneDay" select='xs:dayTimeDuration("P1D")' />

  </xsl:template>

我从撒克逊人看到以下错误:

/xsl:stylesheet/xsl:template[2]/xsl:variable[1] 处出错 XPST0081 {xs:dayTimeDuration("P1D"} 中第 -1 行的字符 0 处出现 XPath 语法错误:未声明的命名空间前缀 {xs} 警告:在 /xsl:stylesheet/xsl:template[2]/xsl:variable[1] SXWN9001:没有以下同级指令的变量无效

我想我可能使用了错误的语法,我完全被文档弄糊涂了。我找不到正确完成此操作的示例。请让我知道如何使它工作。

4

1 回答 1

2

您所需要的只是在样式表顶部的声明,它将xs前缀绑定到 W3C 模式命名空间,可能还带有一个指令来修剪命名空间复制到结果树:

            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            exclude-result-prefixes="xs"

警告只是告诉您尚未完成向模板中添加代码,因此该变量不会为您做任何事情。

于 2013-09-25T18:56:54.207 回答