【问题标题】:How to count equal values of the same element name [xQuery]如何计算相同元素名称的相等值 [xQuery]
【发布时间】:2022-11-22 01:40:40
【问题描述】:

这是一个例子:

`

<bracketQualifier>
   <bracketSequenceNumber>1</bracketSequenceNumber>
</bracketQualifier>
<bracketQualifier>
   <bracketSequenceNumber>1</bracketSequenceNumber>
</bracketQualifier>
<bracketQualifier>
   <bracketSequenceNumber>1</bracketSequenceNumber>
</bracketQualifier>

` 我需要做的是,如果 bracketSequenceNumber 持有相同的值,则抛出异常。 元素数为 N,可以超过 3 个。我如何使用 xquery 实现此目的。

我尝试过类似的方法但没有成功,我不能说我完全理解 xQuery:

`

let $count := ( for  $bracketSequenceNumber in $bracketQualifier/bracketSequenceNumber return count(bracketQualifier[@bracketSequenceNumber = $bracketSequenceNumber ])) return
if($GDSN_PriceSyncPriceSegmentTM/value ='250' and $count >= 1) then something

`

【问题讨论】:

    标签: xquery


    【解决方案1】:

    您可以使用

    if (count(//bracketSequenceNumber) 
        != count(distinct-values(//bracketSequenceNumber) then ...
    

    如果您真的想找到重复项,请在 XQuery 3.1 中使用 group by 来处理每组相等的值并测试组大小是否为 2 或更多。

    【讨论】:

      猜你喜欢
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 2021-03-17
      相关资源
      最近更新 更多