在xquery中使用条件计数

时间:2016-08-19 12:10:18

标签: function count xquery conditional-statements

我有一个带有子节点的节点,其节点如下:

<parent>
  <child>a</child>
  <child>b</child>
  <child>c</child>
  <child>a</child>
  <child>c</child>
</parent>

我想计算一个孩子的数量&#39; a&#39;作为内容。

到目前为止,我已尝试过:

count($node/child/'a')

但这只给了我所有孩子的数量。 这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

试试这个:

let $parent :=
  <parent>
    <child>a</child>
    <child>b</child>
    <child>c</child>
    <child>a</child>
    <child>c</child>
  </parent>
return count($parent/child[text() = 'a'])

它也会计算<child>a<foobar/>b</child>,因为找到了文本节点a。要比较所有文本上下文,您可以使用$parent/child[. = 'a']