XPath怎么获取字符串长度 string-length()

2次阅读

String-Length()返回字符串中Unicode字符个数;参数为空或未提供时返回0,节点集取第一个节点的字符串值;空格和换行符计入长度,需精确判断时应先用normalize-space()清理。

XPath怎么获取字符串长度 string-length()

XPath 中用 string-length() 函数获取字符串长度,它返回字符串中 Unicode 字符的个数(不是字节数)。

基本用法:直接计算字符串长度

函数接受一个字符串参数,返回整数。如果参数为空或未提供,返回 0;如果参数是节点集,只取第一个节点的字符串值(即 string(node-set) 的结果)。

  • string-length('hello') → 返回 5
  • string-length('你好') → 返回 2(每个汉字算 1 个字符)
  • string-length('') → 返回 0
  • string-length()(无参数)→ 返回 0

结合节点使用:获取元素文本内容的长度

常用于判断某个元素是否为空、或筛选文本较长/较短的节点。

  • string-length(//title) → 返回第一个 <title></title> 元素文本内容的字符数
  • //div[string-length(text()) > 10] → 选中文本子节点长度超过 10 的 <div> <li> <code>//input[string-length(@placeholder) > 0] → 找出设置了非空 placeholder 的 input
  • 注意空格和换行符也算字符

    text() 可能包含空白(如缩进、换行),string-length() 会把它们计入长度。需要精确判断“有效内容”时,建议先用 normalize-space() 清理:

    XPath怎么获取字符串长度 string-length()

    察言观数AskTable

    企业级AI数据表格智能体平台

    XPath怎么获取字符串长度 string-length() 78

    查看详情 XPath怎么获取字符串长度 string-length()

    • string-length(normalize-space(//p)) → 去掉首尾空格、合并中间多个空格为一个后计算长度
    • //p[string-length(normalize-space()) = 0] → 找真正“空内容”的段落(忽略纯空白)

    在不同 XPath 版本中的兼容性

    string-length() 是 XPath 1.0 就支持的核心函数,所有主流解析器(如 lxml、Saxon、浏览器内置 XPath)都支持。XPath 2.0/3.0 中行为一致,但新增了更灵活的字符串函数(如 string-length((), 'UTF-8') 这类字节长度计算需用其他方式,XPath 本身不直接支持)。

    基本上就这些 —— 简单但容易忽略空白影响,用前记得看清楚目标文本的实际构成。

text=ZqhQzanResources