В чем разница между этими двумя выражениями Xpath?Разница между двумя выражениями Xpath
$z!="actors"
and
not($z="actors")
Большое спасибо!
В чем разница между этими двумя выражениями Xpath?Разница между двумя выражениями Xpath
$z!="actors"
and
not($z="actors")
Большое спасибо!
Это детализируется в the XPath specification:
ПРИМЕЧАНИЕ: Если
$x
привязан к набору узлов, то$x="foo"
не означает то же самое, какnot($x!="foo")
: бывший истинно, если и только если узел в$x
имеет строковое значениеfoo
; последнее верно тогда и только тогда, когда все узлов в$x
имеют строковое значениеfoo
.
По сути, все общие операторы сравнения =
, !=
, <
, <=
, >
и >=
неявно экзистенциальны количественно над своими аргументами - X op Y
верно, если есть любая пара значений из X и Y, удовлетворяющих состояние.
$z != "actors"
означает, что есть узел в $z
, который имеет значение, отличное от «актеров» (и могут также существовать другие узлы в $z
, что делают имеют значение «актеры», тест все равно будет истинным если любой из них имеет другое значение), тогда как
not($z = "actors")
означает, что она не так, что есть узел в $z
, значение которого является «актерами».
Большое спасибо! Я прочту еще об этом! –