数値を使用して複数のノードを合計できることはわかっています。ノードのセットに対して「ブール和」を実行するにはどうすればよいですか?例えば:
<a>
<b>false</b>
<b>false</b>
<b>true</b>
<b>false</b>
</a>
<b>
すべてのノード値のブールORを取得するにはどうすればよいですか?(これは「true」である必要があります)。
使用:
boolean(/*/b[. = 'true'])
これにより、式のブール値が生成されます。
/*/b[. = 'true']
そして、上記の式が少なくとも1つのノードを選択する場合b
、つまり、最上位要素の子であり、文字列値が文字列であるが存在する場合に正確に当てはまります'true
。
「ブール積」(とを使用)も計算する場合は、次のようにします。
not(/*/b[. = 'false'])
あなたは本当の値を数えることができます:
<xsl:if test="count(a/b[text()='true']) > 0">
true
</xsl:if>
真の値がある場合、ORは真になります。