[英]XQuery: How to select unique nodes
我必须得到某个节点的所有当前值。 我找到了这个问题。 我的XML文件看起来不一样。 所以我有多个具有相同名称的元素。
<instance>
<value>0</value>
<value>0.72</value>
<value>0</value>
<value>0.72</value>
<value>2</value>
<value>22</value>
</instance>
<instance>
<value>10000000</value>
<value>0.72</value>
<value>0</value>
<value>0.72</value>
<value>1</value>
<value>22</value>
</instance>
<instance>
<value>20000000</value>
<value>0.64</value>
<value>-0.04</value>
<value>0.68</value>
<value>1</value>
<value>22</value>
</instance>
以下查询是选择每个5th
值:
new XQuery("doc('database/dataset.xml')/dataset/body/instances/instance/value[5]")
结果如下:
<value>2</value>
<value>1</value>
<value>1</value>
如何合并链接问题的已接受答案以获得所需的输出:
<value>2</value>
<value>1</value>
我觉得它看起来像
doc('database/dataset.xml')
/dataset
/body
/instances
/instance[ not(value[5] = preceding-sibling::instance/value[5]) ]
/value[5]
(使用编辑后接受的答案技巧)
我还建议另一个答案,因为这是XQuery,它允许元素构造函数。 但这仅适用于节点的标识不相关的情况:
for $value in distinct-values(
doc('database/dataset.xml')/dataset/body/instances/instance/value[5]
)
return <value>{$value}</value>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.