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

标签 xml xslt xslt-2.0

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/

相关文章:

java - 删除所有 xsl :if tags from xslt using Java

xml - XQuery 列表节点包含所有属性

xml - Xslt 更改节点并添加命名空间

xml - 将不同源位置的 xml 文档图像复制到单个输出目录中

xml - 如何按内容对元素进行分组(XSLT 2.0)?

xml - 如何创建 boolean 值?

xslt - 无法使用 XSLT/XPath 2.0 正确获取调试输出

python - 如果参数具有特定值,则从 XML 文件中提取数据

javascript - 将 XML 传递到 Javascript 以在 Google map 中显示标记

xslt - 浏览器不受支持的 Tridion 2011 SP1 富文本 XSLT 中的命名空间问题