我知道我可以用数值对多个节点求和。我怎样才能对一组节点进行“布尔求和”?例如:
<a>
<b>false</b>
<b>false</b>
<b>true</b>
<b>false</b>
</a>
如何获得所有<b>
节点值的布尔 OR?(这应该是“真实的”)。
使用:
boolean(/*/b[. = 'true'])
这将产生表达式的布尔值:
/*/b[. = 'true']
并且在上述表达式至少选择一个节点时为真——也就是说,当有 ab
是顶部元素的子元素并且其字符串值为 string 时'true
。
如果您还想计算“布尔产品”(使用and),请执行以下操作:
not(/*/b[. = 'false'])
您可以计算真实值:
<xsl:if test="count(a/b[text()='true']) > 0">
true
</xsl:if>
如果有任何真值,则 OR 将为真。