如果存在一个或多个匹配元素,则将其中一个添加到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) 

(在+运营商暗中要挟它的参数是数字)