You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xpath匹配逗号分隔数值始终返回true 求88-89区间筛选写法

问题原因分析
  • XPath 内置的number()函数仅支持英文小数点.作为小数分隔符,你使用逗号,作为小数位分隔符的数值传入后会直接返回NaN(非数值)
  • 所有和NaN的大小比较运算结果均为false,因此你写的boolean(number(text()) > 80) = false和boolean(number(text()) < 80) = false两个条件永远同时成立,导致所有元素都被匹配
  • 你尝试的number(text()) = 88,97写法中,逗号在XPath语法里是序列分隔符,会被识别为88和97两个独立值,自然无法和目标数值匹配
正确XPath写法

要筛选数值落在88~89区间的元素,先用translate()函数把逗号替换为小数点后再做数值比较即可,写法如下:

//div[@class="prix"]/div[2]/div[2]/span[1][number(translate(text(), ',', '.')) >= 88 and number(translate(text(), ',', '.')) < 89]

如果需要精确匹配特定数值比如88,97,可以用下面的写法:

//div[@class="prix"]/div[2]/div[2]/span[1][number(translate(text(), ',', '.')) = 88.97]

内容的提问来源于stack exchange,提问作者Tester testing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:42:04