首页 文章

在xpath中选择不同的元素

提问于
浏览
0

我有以下xml

<?xml version="1.0" encoding="UTF-8"?>
<results>
   <result>
      <status>A</status>
   </result>
   <result>
      <status>A</status>
   </result>
   <result>
      <status>B</status>
   </result>
</results>

我想根据子元素状态的不同值获取结果元素 . 即在上述情况下,只应返回一个包含A的结果元素

<result>
      <status>A</status>
   </result>
   <result>
      <status>B</status>
   </result>

感谢您对此的帮助以获得有效的xpath表达式 .

2 回答

  • 1

    在XPath-2.0中,您可以将distinct-values(...)函数与for循环一起使用,如下所示:

    for $d in distinct-values(/results/result/status) return /results/result[status=$d][1]
    
  • 1

    您可以使用此选项获得所需的输出:

    /results/result[not(status=preceding-sibling::result/status)]
    

    如果没有前面的 result 节点具有相同的 status 值(不同的 result 节点),它应该返回 result 节点

相关问题