xml - 如何找到计数最高的节点?

标签 xml xpath xquery

使用 XPath 或 XQuery,如何选择另一个节点出现次数最多的节点?

例如,如何找到鸡蛋最多的篮子?

<basket name="1">
        <egg></egg>
        <egg></egg>
</basket>
<basket name="2">
        <egg></egg>
</basket>
<basket name="3">
        <egg></egg>
        <egg></egg>
        <egg></egg>
        <egg></egg>
</basket>

最佳答案

这是一种解决方案 (TIMTOWTDI):

let $nodes := <xml>
  <basket name="1">
          <egg></egg>
          <egg></egg>
  </basket>
  <basket name="2">
          <egg></egg>
  </basket>
  <basket name="3">
          <egg></egg>
          <egg></egg>
          <egg></egg>
          <egg></egg>
  </basket>
</xml>
let $max := max(for $c in $nodes//basket return count($c/egg))
return $nodes/basket[count(egg) = $max]

关于xml - 如何找到计数最高的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673146/

相关文章:

java - 遇到无效字符 '&#x0'

java - SAX 模型是否有任何 XPath 处理器?

javascript - Xpath 使用包含

sql-server - T-SQL XML查询,如何将匹配的节点分成单独的行?第二部分

sql - Oracle 中的 XML 查询

未应用 Android 自定义工具栏主题

java - 如何在没有类文件的情况下从序列化的 Java 对象中检索对象状态

c# - 派生类的 DataContractSerializer 命名空间与属性中指定的不匹配

java - 如何将Xpath的结果变成我的输出结果?

sql - 在类型化的 xml 列上选择节点的原子值