我有这个测试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
答案 0 :(得分:3)
如果您必须使用的是XPath(而不是XSLT或其他类似的东西),那么我认为这是您可以做的最好的事情:
所有不同的y
值:
//y[not(. = preceding::y)]
不同y
值的数量:
count(//y[not(. = preceding::y)])