17370845950

XPath函数库有哪些常用函数 string(), number(), count()
string()、number()和count()是XPath三大基础函数:string()将任意值转字符串(节点取合并文本,节点集只取首个);number()转浮点数(失败返回NaN);count()统计节点集中的节点个数。

XPath 提供了丰富的内置函数来处理字符串、数字、节点集等数据,string()number()count() 是其中最基础且高频使用的三个类型转换与统计函数。

string():把任意值转为字符串

该函数将节点、数字、布尔值或节点集转换成字符串。对节点,取其**合并后的文本内容**(即所有后代文本节点拼接,不保留标签和空白);对节点集,只取**第一个节点**的字符串值。

  • 示例string(//title) 返回 首页 中的 "首页"
  • 注意:空节点或不存在的节点返回空字符串;string(123) 得 "123",string(true()) 得 "true"

number():把值转为浮点数

尝试将参数解析为数字。若无法解析(如纯字母、空字符串、含非法字符),结果为 NaN(非数字);NaN 在布尔上下文中为 false。

  • 示例number("3.14") → 3.14,number("¥100") → NaN,number(//price) 可提取价格文本并转数字用于比较
  • 实用技巧:配合 floor()ceiling()round() 做数值处理;判断是否为有效数字可用 not(number($x) = number($x))(利用 NaN ≠ NaN)

count():统计节点数量

唯一参数必须是节点集(node-set),返回其中**节点个数**(整数)。常用于条件判断,比如“是否存在某类元素”或“是否超过指定数量”。

  • 示例count(//li) 统计所有 li 元素个数;count(//input[@type='checkbox']) > 3 判断复选框是否多于 3 个
  • 注意:传入非节点集(如字符串或数字)会报错;空节点集返回 0