【问题标题】:Incrementing an integer in xslt在 xslt 中增加一个整数
【发布时间】: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 上应用模板”所以我想知道你为什么不简单地使用 &lt;xsl:apply-templates select="foo"&gt;&lt;xsl:with-param name="level" select="$level + 1"/&gt;&lt;/xsl:apply-templates&gt;
  • @MartinHonnen:因为我很愚蠢!不知道 XSL 会理解这一点,也没有想过尝试它。它做我想要的。请发布答案,以便我接受。

标签: xslt arithmetic-expressions


【解决方案1】:
<xsl:with-param name="level" select="ceiling(number(concat($level,'.9')))" />

只需使用

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

【讨论】:

  • @bitmask:是错字 -- 已修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 2011-07-22
  • 1970-01-01
  • 2011-12-21
相关资源
最近更新 更多