XPath 1.0 COUNT - 唯一值

时间:2014-08-28 12:52:35

标签: xml xpath xpath-1.0

我有这个测试XML:

<test>
    <x a="1">
      <x a="2">
        <x>
          <y>y31</y>
          <y>y32</y>
        </x>
      </x>
    </x>
    <x a="1">
      <x a="2">
        <y>y31</y>
        <y>y32</y>
      </x>
    </x>
    <x a="1">
      <y>y11</y>
      <y>y12</y>
    </x>
    <x>
      <y>y11</y>
      <y>y11</y>
    </x>
</test>

我如何查询:

1 - y的所有值

y32, y32, y11, y12

2 - y

的值数

我正在尝试使用COUNT,但我无法计算UNIQUE值y的数量,例如,如果我在之前描述的示例XML运行查询,则需要将结果设为4

1 个答案:

答案 0 :(得分:3)

如果您必须使用的是XPath(而不是XSLT或其他类似的东西),那么我认为这是您可以做的最好的事情:

所有不同的y值:

//y[not(. = preceding::y)]

不同y值的数量:

count(//y[not(. = preceding::y)])
相关问题