string()、number()和count()是XPath三大基础函数:string()将任意值转字符串(节点取合并文本,节点集只取首个);number()转浮点数(失败返回NaN);count()统计节点集中的节点个数。
XPath 提供了丰富的内置函数来处理字符串、数字、节点集等数据,string()、number() 和 count() 是其中最基础且高频使用的三个类型转换与统计函数。
该函数将节点、数字、布尔值或节点集转换成字符串。对节点,取其**合并后的文本内容**(即所有后代文本节点拼接,不保留标签和空白);对节点集,只取**第一个节点**的字符串值。
string(//title) 返回 首页 中的 "首页"string(123) 得 "123",string(true()) 得 "true"尝试将参数解析为数字。若无法解析(如纯字母、空字符串、含非法字符),结果为 NaN(非数字);NaN 在布尔上下文中为 false。
number("3.14") → 3.14,number("¥100") → NaN,number(//price) 可提取价格文本并转数字用于比较floor
()、ceiling() 或 round() 做数值处理;判断是否为有效数字可用 not(number($x) = number($x))(利用 NaN ≠ NaN)唯一参数必须是节点集(node-set),返回其中**节点个数**(整数)。常用于条件判断,比如“是否存在某类元素”或“是否超过指定数量”。
count(//li) 统计所有 li 元素个数;count(//input[@type='checkbox']) > 3 判断复选框是否多于 3 个