我正在使用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行的char 0处的XPath语法错误 : 未声明的名称空间前缀{xs}警告:at / xsl:stylesheet / xsl:template [2] / xsl:variable [1] SXWN9001:变量 没有以下兄弟说明没有效果
我想我可能使用了错误的语法,我对文档感到困惑。我无法找到正确完成此操作的示例。请让我知道如何使它工作。
答案 0 :(得分:2)
您需要的只是样式表顶部的声明,它将xs
前缀绑定到W3C架构名称空间,可能还有一个指令,用于修剪名称空间复制到结果树:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
警告只是告诉您尚未完成向模板添加代码,因此该变量不会为您做任何事情。