3

我知道我可以用数值对多个节点求和。我怎样才能对一组节点进行“布尔求和”?例如:

<a>
  <b>false</b>
  <b>false</b>
  <b>true</b>
  <b>false</b>
</a>

如何获得所有<b>节点值的布尔 OR?(这应该是“真实的”)。

4

2 回答 2

3

使用

boolean(/*/b[. = 'true'])

这将产生表达式的布尔值

 /*/b[. = 'true']

并且在上述表达式至少选择一个节点时为真——也就是说,当有 ab是顶部元素的子元素并且其字符串值为 string 时'true


如果您还想计算“布尔产品”(使用and),请执行以下操作:

not(/*/b[. = 'false'])
于 2013-02-14T03:38:54.490 回答
0

您可以计算真实值:

<xsl:if test="count(a/b[text()='true']) > 0">
        true
</xsl:if>

如果有任何真值,则 OR 将为真。

于 2013-02-13T21:39:28.300 回答