在XPath中匹配货币与美元符号($)和逗号(,)

时间:2016-01-12 01:18:45

标签: html xml xpath

在Firefox的控制台中尝试使用XPath查找数组:

<span class="ourPrice2">$99.99</span>

做比较我用过:

"//span[@class = 'ourPrice2' and number(substring(normalize-space(text()), 2)) >= 14.99]"

它有所帮助,但在这样的情况下该怎么做:

<span class="bold">
                $63,995.00</span>

"//span[@class ='bold' and number(substring(normalize-space(text()), 2)) > '60,000.00']"

据我所知,它不起作用,因为“,”。那么解决方案是什么?

另外,使用“number(substring(normalize-space(text()),2))”我找到了这个解决方案,我玩它并理解函数“substring()”和“normalize-space()”但是“number()”是什么?

1 个答案:

答案 0 :(得分:3)

您使用 number() 将字符串转换为数字。但是,这是不必要的,因为XPath会自动为您执行此操作。此外, number() 不会处理美元符号或逗号,但您可以使用 {{3来消除toolset$个字符}}

,

那么,你的XPath就变成了:

translate(normalize-space(), '$,', '')

并将根据请求选择所有(//span[@class='bold' and translate(normalize-space(), '$,', '') > 60000] @class='bold元素,其字符串值可以转换为小于60000的数字。