[英]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.