我可以在函数内调用xsl函数吗?我只想比较之前的值和当前值。例如:
<xsl:value-of select="//row[(position()-1)]/MONTH_ID" />
但是,下面的代码还可以:
<xsl:value-of select="number(position())-1" />
答案 0 :(得分:5)
你的问题的答案是肯定的,但我不认为你问的是正确的问题。你还没有说你想要做什么,但你的代码示例没有做任何有用的事情。
//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"/>
答案 1 :(得分:1)
是的,你可以嵌套XPath功能。您可以在下面找到一个示例:
substring(child::randlist/item[position()=1], 1, 10)
在子字符串函数内调用函数位置。
您可以更具体地了解比较请求吗?