XPath的number()函数将参数转为数字,字符串会忽略首尾空格解析,非数字字符或格式错误返回NaN;布尔值true转1、false转0;节点集取首个节点字符串值转换。对含千位符、货币符号等非标准格式返回NaN,常见陷阱包括非数字字符、多小数点、空节点集等。实际查询中用于数值比较,如//product[number(@price)>500],实现精确筛选。

XPath的
number()
NaN
number()
0
NaN
number('123')123
number(' 45.67 ')45.67
number('')0
number(' ')0
number('hello')NaN
number('123a')NaN
number('1,000')NaN
number('$100')NaN
true()
1
false()
0
number(true())
1
number(false())
0
NaN
<price>99.99</price>
number(/root/price)
99.99
<item>Free</item>
number(/root/item)
NaN
这其实是
number()
举个例子,如果你有一个价格字符串是"1,234.56"(带千位分隔符),或者"€100.00"(带货币符号),甚至是"12.3.4"(多个小数点),
number()
NaN
所以,当你在XPath里遇到需要把这类“非标准”数字字符串转换成数字时,你可能需要一些预处理。比如,如果你在XSLT环境里,可以先用
translate()
number()
NaN
number()
NaN
price="一百元"
quantity="5 units"
"1 23"
NaN
number('abc')NaN
number('100 units')NaN
number('1 2 3')NaN
"1.2.3"
"1,000"
"$50"
number()
number()
NaN
number(//nonexistent-node)
NaN
<data></data>
number(//data)
0
<data> </data>
number(//data)
0
<data>Hello</data>
number(//data)
NaN
要判断一个
number()
NaN
not(number() = number())
NaN
fn:empty()
fn:not(fn:number() = fn:number())
fn:isNaN()
Perl学习手札是台湾perl高手写的一篇文章,特打包为chm版,方便大家阅读。 关于本书 1. 关于Perl 1.1 Perl的历史 1.2 Perl的概念 1.3 特色 1.4 使用Perl的环境 1.5 开始使用 Perl 1.6 你的第一个Perl程序 2. 标量变量(Scalar) 2.1 关于标量 2.1.1 数值 2.1.2 字符串 2.1.3 数字与字符串转换 2.2 使用你自己的变量 2.3 赋值 2.3.1 直接设定 2.3.2 还可以这样 2.4 运算 2.5 变量的输出/输入 2.
0
number()
想象一下,你有一堆产品列表,它们的库存数量或者价格都是以字符串属性的形式存在的,比如
<product name="Laptop" price="999.99" stock="50"/>
@price > '500'
number()
//product[number(@price) > 500]
这会把
@price
再比如,你想筛选出库存量大于0的产品:
//product[number(@stock) > 0]
甚至更进一步,如果你知道某些库存数据可能是不规范的,比如有
"N/A"
number()
NaN
NaN
NaN > 0
NaN < 0
not(number() = number())
NaN
number() > 0
NaN
false
可以说,
number()
以上就是XPath的number()函数如何转换字符串为数字?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号