【发布时间】:2012-04-21 07:52:25
【问题描述】:
有一个标题相似但问题主体完全不同的问题:How to increment a XSL integer variable
我将参数$level 传递给模板并希望在$level + 1 上应用模板,而$level 保证始终是严格的正整数。我现在有这个计算,但它看起来很糟糕。一定有更好的方法:
<xsl:with-param name="level" select="ceiling(number(concat($level,'.9')))" />
这可行,但我想知道您是否可以直接使用 xpath:sum,但我很挣扎,因为文字 1 本身并不是一个节点。
那么,ceiling(number(concat($level,'.9'))) 部分有更好的表达方式吗?
【问题讨论】:
-
我不确定我是否理解问题所在。你的文字说“我......想在 $level + 1 上应用模板”所以我想知道你为什么不简单地使用
<xsl:apply-templates select="foo"><xsl:with-param name="level" select="$level + 1"/></xsl:apply-templates>? -
@MartinHonnen:因为我很愚蠢!不知道 XSL 会理解这一点,也没有想过尝试它。它做我想要的。请发布答案,以便我接受。
标签: xslt arithmetic-expressions