是什么之间的区别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?我希望这两行是等效的。为什么不是?
要回答您没有问的问题,但应该:
"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