Return 一个 true/false 在 XQuery 中检查多个项目时

Return one true/false when checking multiple items in XQuery

<Response>
    <List>
        <item>
            <Date>2019-01-01</Date>
        </item>
        <item>
            <Date>2020-01-11</Date>
        </item>
        <item>
            <Date>2021-03-01</Date>
        </item>
    </List>
</Response>

我尝试在 XQuery 的表达式中得到一个 false / true,但它只适用于每个值。

let $Dates := //Response/List/item[*]/Date
for $Date in $Dates
return if ( $Date>='2020-01-01' and $Date<='2021-01-01') 
then true
else false

结果:

false
true
false

也有人尝试这样做:

let $Date := //Response/List/item[*]/Date
return 
fn:boolean($Date>='2019-01-01' and $Date<='2019-12-31')

在这种情况下,returns仅当所有元素都不满足检查时才为 false。

p.s: 计划用在SoapUI中的Assertions中,如果有其他方案也请写出来

p.s2: 抱歉我的英语不好,我用的是翻译器

您需要使用量化表达式。

在这里查看:XQuery/Quantified Expressions

沿着下面。

XPath

every $Date in /Response/List/item/Date/text()
satisfies ($Date>='2020-01-01' and $Date<='2021-01-01')