簡體   English   中英

選擇多個值並使用XQuery或XPath進行比較?

[英]Select multiple values and compare them using XQuery or XPath?

我有以下XML:

<items>
 <item min="1" max="3"> </item>
 <item min="2" max="7"> </item>
 <item min="1" max="2"> </item>
</items>

如果min總是小於max,我需要檢查每個項目。 此輸入的預期輸出將為false因為@min="2"不小於@max="2"

我嘗試過類似的東西:

every $min,$max  in //item/@min, //item/@max satisfies ...

但這顯然不起作用。 有任何想法嗎?

您不需要使用satisfies ,只需反轉條件並使用not(...)

此查詢將返回滿足條件的所有@min屬性:

//item/@min[not(. >= //item/@max)]

如果要使用satisfies ,請使用以下查詢:

//item/@min[every $max in //item/@max satisfies . < $max]

如果您想知道所有元素是否滿足條件,請檢查沒有元素不滿足它:

not(//item/@min[. >= //item/@max])

你甚至可以沒有謂詞(XPath / XQuery比較有類似集合的語義,如果一個@min值等於或大於一個@max值,這意味着是真的):

not(//item/@min >= //item/@max)

您沒有非常清楚地表達您的要求,但聽起來好像您希望最高@min小於最低@max,這將是

max(item/@min) lt min(item/@max)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM