boolean()函数将XPath值按规则转为布尔值:数字中0和NaN为false,其余为true;空字符串为false,非空为true;节点集非空为true;布尔值不变。可用于条件判断,如//item[@price and boolean(@price)]选price非空节点。与string()、number()不同,boolean()仅判断真假。注意空字符串与缺失属性区别、数字字符串格式及NaN问题,避免陷阱。

XPath的
boolean()
XPath中的
boolean()
false
true
false
true
false
true
true
true
false
false
boolean()
if
举个例子,假设你有以下XML:
<root> <item name="apple" price="1.0"/> <item name="banana" price=" "/> <item name="cherry"/> </root>
你可以使用以下XPath表达式来选择所有
price
item
//item[@price and boolean(@price)]
这个表达式首先检查
@price
boolean(@price)
再比如,要选择所有
price
//item[number(@price) > 0]
注意这里使用了
number()
@price
@price
number(@price)
NaN
NaN > 0
false
XPath还提供了
string()
number()
string()
number()
boolean()
string()
number()
NaN
boolean()
这三个函数服务于不同的目的,并在XPath表达式中扮演着不同的角色。 错误地使用它们可能导致意想不到的结果。 例如,直接比较两个字符串,而不是将它们转换为数字,可能会导致基于字符串排序的比较,而不是数值比较。
在使用
boolean()
""
boolean(@attribute)
true
@attribute
boolean()
false
number()
NaN
boolean(node-set)
例如,为了更安全地选择所有
price
item
//item[@price and number(@price) > 0 and not(number(@price) != number(@price))]
最后的
not(number(@price) != number(@price))
number(@price)
NaN
NaN
理解这些细微的差别可以帮助你编写更健壮和可靠的XPath表达式。
以上就是XPath的boolean()函数如何转换值为布尔型?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号