not()
运算符和 !=
有什么区别?
看这个例子:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<test>123</test>
</body>
<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>
http://xsltransform.net/jyH9rMx
为什么我的结果是 true1
而不是 true2
?我希望这两条线是等价的。为什么不是?
最佳答案
要回答您没有提出但应该提出的问题:
"123 = (123, 2)"
返回真,因为 123 等于 123。
"not(123 = (123, 2))"
返回 false,因为如上所示,内部表达式为 true - 而外部 not() 只是将其反转。
"123 != (123, 2)"
返回真,因为 123 不等于 2。
"not(123 != (123, 2))"
返回 false,因为如上所示,内部表达式为 true,而外部 not() 只是将其反转。
有关引用,请参阅: http://www.w3.org/TR/xpath20/#id-value-comparisons
关于xml - != 和 not ( = ) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261158/