如果存在一个或多个匹配元素,则将其中一个添加到xsl变量
问题描述:
我正在创建项目编号的xsl转换。它包括这样的语句:如果存在一个或多个匹配元素,则将其中一个添加到xsl变量
data-item-no="{$itemOffset + count(list//para)}"
这是罚款时,我想添加对元素$ itemOffset的数量,但在这种情况下,段都汇总到一个单一的项目。如果没有匹配“list // para”,我想添加0;如果有一个或多个“list // para”,我想添加1。我怎样才能在xsl中做到这一点?
答
在XSLT 2.0,你可以把它明确与
$itemOffset + (if (list//para) then 1 else 0)
在XSLT 1.0利用这一
- 空节点集强制转换到布尔值false事实
- 一个非空节点集合强制布尔真
- 布尔假强制编号0
- 布尔true coe的RCE到1号
所以:
$itemOffset + boolean(list//para)
(在+
运营商暗中要挟它的参数是数字)