2012-04-08 91 views
2

的整數有一個類似標題的問題,而是一個完全不同的問題,身體:How to increment a XSL integer variable遞增在XSLT

我得到一個參數$level傳遞給一個模板,並想在$level + 1應用模板,而$level保證總是一個嚴格的正整數。我現在有這個計算,但看起來很糟糕。療法的必須是一個更好的辦法:

<xsl:with-param name="level" select="ceiling(number(concat($level,'.9')))" /> 

這工作,但我想知道,如果你可以直接使用xpath:sum direcly,但我掙扎,因爲字面1是不是對自己的一個節點。

那麼,ceiling(number(concat($level,'.9')))部分有更好的表達嗎?

+1

我不知道我理解這個問題。您的文本顯示「我...想要在$ level + 1上應用模板」,所以我想知道爲什麼您不僅僅使用ie '? – 2012-04-08 17:38:17

+0

@MartinHonnen:因爲我很笨!不知道XSL會理解,並沒有想到嘗試它。它做我想要的。發表一個答案,所以我可以接受它。 – bitmask 2012-04-08 17:46:03

回答

2
<xsl:with-param name="level" select="ceiling(number(concat($level,'.9')))" /> 

只需使用

<xsl:with-param name="level" select="$level+1"/> 
+0

爲什麼沒有'$'? – bitmask 2012-04-08 19:14:43

+0

@bitmask:是一個錯字 - 修正。 – 2012-04-08 20:11:55