gpt4 book ai didi

xpath - XPath运算符 “!=”。它是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 08:54:14 25 4
gpt4 key购买 nike

XML文件:

<doc>
<A>
<Node>Hello!</Node>
</A>

<B>
<Node/>
</B>

<C>
</C>

<D/>
</doc>

您将如何评估以下XPath查询?
/doc/A/Node != 'abcd'  
/doc/B/Node != 'abcd'
/doc/C/Node != 'abcd'
/doc/D/Node != 'abcd'

我希望所有这些都能评估为 true

但是,结果如下:
/doc/A/Node != 'abcd'     true
/doc/B/Node != 'abcd' true
/doc/C/Node != 'abcd' false
/doc/D/Node != 'abcd' false

这是预期的行为吗?还是我的XPath提供程序(jaxen)的错误?

最佳答案

建议:在将一个或两个参数作为节点集的情况下,切勿使用!=运算符比较不等式。

By definition表达式:

$node-set != $value

true()中至少有一个节点,使得其字符串值不等于 $node-set的字符串值时,将精确计算为 $value

使用此定义:
$empty-nodeset != $value 

始终为 false(),因为 $empty-nodeset中甚至没有单个节点持有不等式。

解决方案:

使用:
not($node-set = $value)

然后,您将获得所有结果true(),如想要的

关于xpath - XPath运算符 “!=”。它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4629416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com