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



我可以在函数中调用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],这将始终为false。

我想你忘记了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)

函数位置在子字符串函数内部调用。

你能更具体地提出比较请求吗?

最新更新