[1] XPath には、
=
, !=
,
<
, >
,
<=
, >=
の6つの比較演算子があります。
<http://www.w3.org/TR/xpath#booleans>
比較対象の2つのオペランドの型によって、 それぞれ比較の仕方が定義されています。
オペランド1 | 演算子 | オペランド2 | 意味 | ||||
節集合 | すべて | 節集合 | ∃オペランド1の節, ∃オペランド2の節 s.t. 比較 (文字列値 (オペランド1の節), 文字列値 (オペランド2の節)) が真 | 節集合 | すべて | 数値 | ∃節集合の節 s.t. 比較 (number (文字列値 (節集合の節)), 数値) が真 |
節集合 | すべて | 文字列 | ∃節集合の節 s.t. 比較 (文字列値 (節集合の節), 文字列) が真 | ||||
節集合 | すべて | 真偽値 | ∃節集合の節 s.t. 比較 (boolean (節集合の節), 真偽型) が真 | ||||
真偽値 | =, != | 節集合以外 | 比較 (真偽値, boolean (もう一方)) | ||||
数値 | =, != | 節集合・真偽値以外 | 比較 (数値, number (もう一方)) | ||||
節集合・真偽値・数値以外 | =, != | 節集合・真偽値・数値以外 | 比較 (string (値1), string (値2)) | ||||
数値 | =, != | 数値 | IEEE 754 的に等しい? | ||||
真偽値 | =, != | 真偽値 | 同じ? | ||||
文字列 | =, != | 文字列 | 同じ UCS 文字列? | ||||
節集合以外 | <, >, <=, >= | 節集合以外 | IEEE 754 的に比較 (number (値1), number (値2)) |
節集合の比較は、その要素の節が1つでも等しければ等しいとか何とかそんな風になります。 ∀じゃなくて∃です。