XPath的string()函数和.有什么区别

畫卷琴夢
发布: 2025-12-19 10:14:02
原创
862人浏览过
string() 将节点转为字符串值(所有后代文本拼接),而 . 表示当前上下文节点对象;前者用于提取纯文本,后者用于节点导航与结构判断。

xpath的string()函数和.有什么区别

string(). 在 XPath 中看起来相似,但作用完全不同:前者是把节点转成字符串值(即文本内容),后者是当前上下文节点本身(一个节点对象,不是字符串)。

string() 是强制类型转换函数

它接收一个节点集(或任意类型),返回该节点集的字符串值——也就是该节点下所有直接/间接文本子节点拼接后的结果(按文档顺序),忽略标签、属性、注释等。如果传入多个节点,只取第一个节点的字符串值。

  • //div/string() → 返回第一个 <div> 元素的文本内容(不含 HTML 标签) <li> <font color="gray">string(//input[@name='em<a style="color:#f60; text-decoration:underline;" title="ai" href="https://www.php.cn/zt/17539.html" target="_blank">ai</a>l'])</font> → 取该 input 元素的 <code>value 属性值(因为 input 的字符串值默认是其 value 属性)
  • string(//p) → 只取第一个 <p></p> <div class="aritcle_card"> <a class="aritcle_card_img" href="/ai/833"> <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679963867780.png" alt="Phidata"> </a> <div class="aritcle_card_info"> <a href="/ai/833">Phidata</a> <p>Phidata是一个开源框架,可以快速构建和部署AI智能体应用</p> <div class=""> <img src="/static/images/card_xiazai.png" alt="Phidata"> <span>147</span> </div> </div> <a href="/ai/833" class="aritcle_card_btn"> <span>查看详情</span> <img src="/static/images/cardxiayige-3.png" alt="Phidata"> </a> </div> 的全部纯文本(包括子元素里的文字)
  • . 表示当前上下文节点(节点引用)

    . 不是函数,是 XPath 中的“当前节点”简写,代表当前正在处理的那个节点对象本身。它保持节点类型,可用于进一步定位子节点、属性,或参与节点比较、谓词判断等。

    • //div[.//span] → 找有 <span></span> 子元素的 <div>(<strong>.</strong> 指代每个遍历到的 div) <li> <font color="gray">//*[@id]/.</font> → 选中所有带 id 属性的元素,并返回它们自身(和 <font color="gray">//*[@id]</font> 等价)</li> <li> <font color="gray">//a[.='点击这里']</font> → 找文本内容**恰好等于**“点击这里”的 <code><a></a> 元素(这里 . 是节点,XPath 自动将其转为字符串用于比较)
    • 关键区别在类型和用途

      你不能对 . 直接做字符串操作(比如用 substring(.,1,5) 是合法的,因为 XPath 会隐式调用 string(.);但 ./text() 就是在取它的子节点,不是字符串);而 string() 明确输出字符串,适合需要纯文本的场景(如断言、拼接、匹配)。

      • 要提取文本内容 → 用 string(XXX) 或依赖自动转换(如 XXX = 'abc'
      • 要筛选、导航或判断节点结构 → 用 .(比如 ./@class./child::img
      • 注意:text() 只取直接文本子节点,string(XXX) 取全部后代文本拼接
      基本上就这些。不复杂但容易忽略类型差异。

以上就是XPath的string()函数和.有什么区别的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
收藏 点赞
上一篇:如何用Airflow的PythonOperator处理XML文件 下一篇:Android中Drawable XML怎么自定义形状 shape使用方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
相关专题
更多>
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号