我可以在另一个函数中调用xslt函数

0 xml xslt xslt-2.0

我可以在函数内调用xsl函数吗?我只想比较之前的值和当前值.例如:

<xsl:value-of select="//row[(position()-1)]/MONTH_ID" />
Run Code Online (Sandbox Code Playgroud)

但是,下面的代码是可以的:

<xsl:value-of select="number(position())-1" />
Run Code Online (Sandbox Code Playgroud)

Mic*_*Kay 5

你的问题的答案是肯定的,但我认为你没有问正确的问题.你还没有说你想要做什么,但你的代码示例没有做任何有用的事情.

//row[(position()-1)]/MONTH_ID
Run Code Online (Sandbox Code Playgroud)

当在谓词中使用数字N时,这意味着[position()=N],所以你的谓词意味着[position() = position() - 1],它总是错误的.

我认为您忘记了结果position()对上下文敏感,并且谓词中的上下文与外部上下文不同.答案是绑定变量:

<xsl:variable name="p" select="position()"/>
<xsl:value-of select="//row[$p - 1]/MONTH_ID"/>
Run Code Online (Sandbox Code Playgroud)