当前位置: 首页 > 知识库问答 >
问题:

如何在XSLT 2.0中声明持续时间变量?

秦禄
2023-03-14

我正在使用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 XPath语法错误位于{xs:dayTimeDuration(“P1D”)}:未声明的命名空间前缀{xs}中第1行的char 0处警告:位于/xsl:stylesheet/xsl:template[2]/xsl:variable[1]SXWN9001:没有以下同级指令的变量无效

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

共有1个答案

穆彬郁
2023-03-14

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

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

警告只是告诉您尚未完成向模板中添加代码,因此该变量对您没有任何帮助。

 类似资料:
  • 我有一套规则,每15秒触发一次。 由于我想对这些规则进行单元测试,所以我想动态设置这个持续时间值。此外,我想把它放在我的应用程序的配置中。此值可能用于20多条规则。 我该怎么做?有可能吗? 这是我的规则: 我想要的是: 我尝试:-从单元测试中放入一个长全局变量集-从单元测试中放入一个包含“15s”的字符串全局变量集-导入一个包含静态字段的类,然后 看来没有办法了A I right?有什么建议吗?

  • 问题内容: 如何在mysql中声明变量,以便第二个查询可以使用它? 我想写一些像: 问题答案: MySQL中主要有三种类型的变量: 用户定义的变量 (以开头): 您可以访问任何用户定义的变量,而无需对其进行声明或初始化。如果引用的变量尚未初始化,则其值为和字符串类型。 您可以使用或语句来初始化变量: 要么 可以从一组有限的数据类型中为用户变量分配一个值:整数,十进制,浮点数,二进制或非二进制字符串

  • 问题内容: 我有一个Netezza查询,在其中我引用了一系列案例陈述中的几个日期。而不是每次我都想在开始时将一个变量置为一个变量并在整个查询中都使用它时,而不是替换所有这些日期。在SAS中,我会这样做: 问题答案: 不幸的是,Netezza中没有程序SQL扩展,您无法将这样的变量用作SQL语言本身的一部分。纯粹的SQL解决方案将涉及一些麻烦,例如加入CTE并返回该值。但是,NZSQL CLI确实允

  • 问题内容: 如何在JavaScript中声明全局变量? 问题答案: 如果必须在生产代码中生成全局变量(应避免使用),请 始终 明确 声明它们: 虽然可以通过省略来定义全局变量(假设没有同名的局部变量),但这样做会生成 隐式 全局,这是一件不好的事情,并且在 严格模式下 会产生错误。

  • 我在typescript中声明了一个全局变量,类似于:global。test=“something”我尝试这样做,我得到错误属性“test”在类型“Global”上不存在。

  • 问题内容: 如何声明用于PostgreSQL 8.3查询的变量? 在MS SQL Server中,我可以这样做: 我如何在PostgreSQL中做同样的事情?根据文档,变量被简单地声明为“名称类型;”,但这给了我一个语法错误: 有人可以给我一个正确语法的例子吗? 问题答案: PostgreSQL中没有这样的功能。您只能在pl / PgSQL(或其他pl / *)中执行此操作,而不能在普通SQL中执