仅从Xquery获取XML中的元素中获取一个响应

仅从Xquery获取XML中的元素中获取一个响应,xml,xquery,osb,Xml,Xquery,Osb,我希望在响应XML中查找特定节点,并根据其是否匹配条件返回true或false。如何才能只接收唯一的节点响应,而不接收XML包含的那么多元素 这是我的Xquery代码: for $recordRetrieved in $sA_ADS_VerifOutput1/ns0:recordRetrieved return if ($recordRetrieved/ns0:COD_NRBE_EN = $ent and $recordRetrie

我希望在响应XML中查找特定节点,并根据其是否匹配条件返回true或false。如何才能只接收唯一的节点响应,而不接收XML包含的那么多元素

这是我的Xquery代码:

for $recordRetrieved in $sA_ADS_VerifOutput1/ns0:recordRetrieved
        return
          if ($recordRetrieved/ns0:COD_NRBE_EN = $ent and
              $recordRetrieved/ns0:DAT <= $dat)
          then <ns2:func>{ true() }</ns2:func>
          else <ns2:func>{ false() }</ns2:func
我不想这样,但是如果所有的都是假的,我希望
false
,如果至少有一个是真的,我希望
true
,只有一次

我考虑过使用
where
子句,但是如果没有符合条件的elemet,我需要显示false


谢谢。

您可以使用fn:distinct-values()消除重复项,然后将它们包装到所需的元素中

fn:distinct-values(
    for $recordRetrieved in $sA_ADS_VerifOutput1/ns0:recordRetrieved
    return
        if ($recordRetrieved/ns0:COD_NRBE_EN = $ent and
            $recordRetrieved/ns0:DAT <= $dat)
        then true()
        else false()
) ! <ns2:func>{.}</ns2:func>
fn:不同的值(
对于$sA_ADS_VerifOutput1/ns0中检索到的$recordRetrieved:recordRetrieved
返回
如果($recordRetrieved/ns0:COD\u NRBE\u EN=$ent和

$recordRetrieved/ns0:DAT您可以使用fn:distinct-values()消除重复项,然后将它们包装到所需的元素中

fn:distinct-values(
    for $recordRetrieved in $sA_ADS_VerifOutput1/ns0:recordRetrieved
    return
        if ($recordRetrieved/ns0:COD_NRBE_EN = $ent and
            $recordRetrieved/ns0:DAT <= $dat)
        then true()
        else false()
) ! <ns2:func>{.}</ns2:func>
fn:不同的值(
对于$sA_ADS_VerifOutput1/ns0中检索到的$recordRetrieved:recordRetrieved
返回
如果($recordRetrieved/ns0:COD\u NRBE\u EN=$ent和
$recordRetrieved/ns0:DAT您想要:

some $recordRetrieved in $sA_ADS_VerifOutput1/ns0:recordRetrieved
   satisfies ($recordRetrieved/ns0:COD_NRBE_EN = $ent and
              $recordRetrieved/ns0:DAT <= $dat)
在$sA_ADS_VerifOutput1/ns0中检索到一些$recordRetrieved:recordRetrieved
满足($recordRetrieved/ns0:COD\u NRBE\u EN=$ent和
$recordRetrieved/ns0:DAT您想要:

some $recordRetrieved in $sA_ADS_VerifOutput1/ns0:recordRetrieved
   satisfies ($recordRetrieved/ns0:COD_NRBE_EN = $ent and
              $recordRetrieved/ns0:DAT <= $dat)
在$sA_ADS_VerifOutput1/ns0中检索到一些$recordRetrieved:recordRetrieved
满足($recordRetrieved/ns0:COD\u NRBE\u EN=$ent和

$recordRetrieved/ns0:DAT非常感谢!这太棒了。非常感谢!这太棒了。