!= 和 not ( = ) 之间的区别

Wil*_*her 5 xml xslt xslt-2.0

是什么之间的区别not()运营商和!=

看这个例子:

<?xml version="1.0" encoding="UTF-8"?>
<body>
    <test>123</test>
</body>
Run Code Online (Sandbox Code Playgroud)

<xsl:template match="/">
<xsl:if test = "/body/test = (123, 2)">true1</xsl:if>
<xsl:if test = "not(/body/test != (123, 2))">true2</xsl:if>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

http://xsltransform.net/jyH9rMx

为什么我得到true1了结果,但不是true2?我希望这两行是等效的。为什么不是?

mic*_*57k 5

要回答您没有问的问题,但应该:

"123 = (123, 2)"
Run Code Online (Sandbox Code Playgroud)

返回 true,因为 123 等于 123。

"not(123 = (123, 2))"
Run Code Online (Sandbox Code Playgroud)

返回 false 因为如上所示,内部表达式为 true - 而外部 not() 只是将其反转。

"123 != (123, 2)"
Run Code Online (Sandbox Code Playgroud)

返回 true,因为 123 不等于 2。

"not(123 != (123, 2))"
Run Code Online (Sandbox Code Playgroud)

返回 false 因为如上所示,内部表达式为真,而外部 not() 只是将其反转。

参考:http : //www.w3.org/TR/xpath20/#id-value-comparisons