讲师中心 微信公众号
AI工具推荐 视频效率加速

XPath函数怎么用 string(), number(), count()函数详解

老宇姑娘_7906

老宇姑娘_7906

发布时间:2026-02-12 10:36:40

|

717人浏览过

|

来源于php中文网

原创

XPath中string()、number()和count()是常用易误用的函数:string()将任意值转字符串(取首节点文本或语义转换),number()转浮点数(失败返回NaN),count()仅统计节点个数(参数须为节点集)。

xpath函数怎么用 string(), number(), count()函数详解

XPath 中的 string()、number() 和 count() 是最常用、也最容易被误用的三个类型转换与统计函数。它们不改变原始 XML 结构,而是对匹配结果做数据类型处理或数量统计,关键在于“什么时候该用”和“怎么用才不出错”。

string():把任意值转成字符串,但要注意空节点和布尔值

string() 接收一个节点集、数值、布尔值或其它对象,返回其字符串表示。它不是简单地加引号,而是按 XPath 规则做语义转换:

  • 对节点集:取第一个节点的文本内容(不含标签),若为空节点则返回空字符串;例如 string(//title) 返回 <title>XPath指南</title> 的文本部分 "XPath指南"
  • 对布尔值:string(true()) → "true",string(false()) → "false"
  • 对数字:string(3.14) → "3.14",string(NaN) → "NaN"
  • 常见误用:直接对属性写 string(@id) 没问题,但写 string(//div[@class='x']) 可能返回空串——因为该 div 元素本身没文本子节点时,string() 就不提取任何内容

number():强制转为浮点数,NaN 是它的“失败信号”

number() 把参数解析为双精度浮点数。它不报错,但会静默返回特殊值 NaN(Not-a-Number)来表示无法转换的情况:

  • number("123") → 123,number("3.1415") → 3.1415
  • number("abc") → NaN,number("") → NaN,number("12px") → NaN(开头非数字即失败)
  • 常用于数值比较:比如筛选价格大于 100 的商品,得写 //item[number(@price) > 100],否则字符串比较 "20" > "100" 会返回 true
  • 注意:number() 对布尔值也有定义:number(true()) 是 1,number(false()) 是 0

count():只数节点个数,不能数文本或属性值长度

count() 的参数必须是节点集(node-set),返回其中包含的节点数量。它不管节点内容是什么,只管“有多少个”:

  • count(//book) → 所有 book 元素的数量
  • count(//book/author) → 所有 author 子元素总数(每个 book 下多个 author 也会被累加)
  • 不能写 count(@class) —— 属性不是节点集,会报错或返回 0(取决于实现);想统计某个属性是否存在,该用 boolean(@class)
  • 配合谓词很实用:比如找“至少有两个作者”的书,可写 //book[count(author) >= 2]
  • 注意:count() 不递归,count(//book//para) 是所有 para 节点总数,不是每个 book 下的 para 数量

这三个函数看似简单,但真正用好,核心就两点:明确输入类型是否符合要求,再确认输出是否是你预期的语义。不复杂但容易忽略细节。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3331

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

554

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

562

2026.02.12

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

7099

2023.08.02

java中boolean的用法
java中boolean的用法

在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。

2150

2023.11.13

java boolean类型
java boolean类型

本专题整合了java中boolean类型相关教程,阅读专题下面的文章了解更多详细内容。

163

2025.11.30

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3648

2023.11.20

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4944

2024.04.01

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

0

2026.11.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn