2个Xpath表达式之间的差异

时间:2015-05-12 16:15:16

标签: xml xpath

这两个Xpath表达式之间的区别是什么?

$z!="actors"
and
not($z="actors")

非常感谢!

1 个答案:

答案 0 :(得分:2)

这在the XPath specification中详细说明:

  

注意:如果$x绑定到节点集,那么$x="foo"not($x!="foo")并不相同:如果和$x,则前者为真仅当foo中的某些节点具有字符串值$x时;当且仅当foo中的所有节点都具有字符串值=时,后者才是真的。

基本上,所有一般比较运算符!=<<=>>=X op Y都是隐式存在量化的他们的参数 - $z != "actors" 如果 X和Y中的任何一对满足条件,则为真。

$z

表示$z中有一个节点,其值不是&#34; actor&#34; (并且not($z = "actors") 中可能还有其他节点具有值&#34; actors&#34;如果其中任何一个具有不同的值,则测试仍然为真) ,而

$z

表示 DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]` 中有一个节点,其值&#34;演员&#34;。