我可以在函数内部调用 xsl 函数吗?我只想比较以前的值和当前值。例如:
<xsl:value-of select="//row[(position()-1)]/MONTH_ID" />
但是,下面的代码是可以的:
<xsl:value-of select="number(position())-1" />
你的问题的答案是肯定的,但我认为你问的问题不正确。您还没有说您要做什么,但是您的代码示例没有做任何有用的事情。
//row[(position()-1)]/MONTH_ID
当在谓词中使用数字 N 时,它表示[position()=N]
,所以您的谓词表示[position() = position() - 1]
,这将始终为假。
我认为您忘记了结果position()
对上下文敏感,谓词内部的上下文与外部的上下文不同。答案是绑定一个变量:
<xsl:variable name="p" select="position()"/>
<xsl:value-of select="//row[$p - 1]/MONTH_ID"/>
是的,您可以嵌套 XPath 函数。您可以在下面找到一个示例:
substring(child::randlist/item[position()=1], 1, 10)
函数位置在子字符串函数内部被调用。
您能否更具体地提出比较请求?