首页 > 解决方案 > XSLT 计数元素子节点(多个子节点)具有特定值

问题描述

我正在尝试计算所有值元素均为 0 的元素的计数数。我正在使用我使用过的 XSLT1.0

count(//element[value ='0'])  

但如果其中一个值为 0(因此计数为 3),它会给出计数,并非所有值都是 0(计数应为 1)。

<root>
  <element>
    <value>1</value>
    <value>0</value>
    <value>0</value>
  </element>
  <element>
    <value>0</value>
    <value>0</value>
    <value>0</value>
  </element>
  <element>
    <value>0</value>
    <value>0</value>
    <value>1</value>
  </element>
</root>

我可以用

count(//element[value !='0'])  

对不为零的元素进行计数,但正在寻找可以计数为 0 的解决方案。

谢谢。

标签: xsltxslt-1.0

解决方案


试试这个 XPath-1.0 表达式。value它从s的总计数中减去s0的计数value

count(//element[count(value) - count(value[text()='0']) = 0])

推荐阅读