XPath的following轴怎么选择之后的节点?

畫卷琴夢
发布: 2025-08-16 13:55:01
原创
714人浏览过
<p>xpath的following轴用于选择当前节点之后的所有非祖先、非属性、非命名空间节点,按文档顺序排列,可通过following::node()选择所有后续节点,或使用following::p、following::a[@href]、following::div[contains(@class,'content')]等表达式精确选择特定类型节点;与following-sibling轴不同,following轴范围更广,包含所有后续节点而不仅限于兄弟节点;在实际应用中,可结合定位标志元素提取后续内容,如//h2[text()='related articles']/following::a提取相关文章链接,或//input[@id='username']/following::span[@class='error-message']定位表单错误信息,从而实现高效的数据提取与自动化测试。

<p>XPath的following轴怎么选择之后的节点?

<p>XPath 的
following
登录后复制
轴用于选择当前节点之后的所有节点,这些节点与当前节点不在同一个父节点下,并且在文档树中按照文档顺序出现。简单来说,它会选取当前节点结束标签之后,直到文档结束的所有节点,排除祖先节点、属性节点和命名空间节点。

<p>选择之后的节点,可以使用
following::node()
登录后复制
选择所有后续节点,或者使用更具体的 XPath 表达式,比如
following::p
登录后复制
选择所有后续的
<p>
登录后复制
元素。

<p>XPath
following
登录后复制
轴的具体用法和注意事项。

如何精确选择特定类型的后续节点?

<p>
following
登录后复制
轴默认会选择所有类型的后续节点。如果只想选择特定类型的节点,例如所有的段落
<p>
登录后复制
标签,可以使用
following::p
登录后复制
。如果需要选择带有特定属性的节点,可以结合属性选择器,例如
following::a[@href]
登录后复制
选择所有带有
href
登录后复制
属性的链接。更复杂的选择可以使用谓语,例如
following::div[contains(@class, 'content')]
登录后复制
选择所有包含
class
登录后复制
属性且属性值包含
content
登录后复制
<div>
登录后复制
元素。

<p>举个例子,假设有以下 HTML 片段:

<div>
  <p>This is the first paragraph.

Some text here <p>This is the second paragraph.

Example Link
登录后复制
<p>如果当前节点是第一个
<p>
登录后复制
标签,那么
following::p
登录后复制
将会选择到 “This is the second paragraph.” 这个
<p>
登录后复制
标签。
following::a[@href]
登录后复制
将会选择到 "Example Link" 这个
<a>
登录后复制
标签。

following
登录后复制
轴和
following-sibling
登录后复制
轴的区别是什么?

<p>
following
登录后复制
轴和
following-sibling
登录后复制
轴是 XPath 中两个不同的轴,它们的选择范围不同。
following
登录后复制
轴选择的是当前节点之后的所有节点,不包括祖先节点、属性节点和命名空间节点,而
following-sibling
登录后复制
轴选择的是当前节点之后的所有兄弟节点,即与当前节点具有相同父节点的节点。

<p>用一个简单的例子来说明:

<div>
  <p>First paragraph

CodeBuddy
CodeBuddy <p>腾讯云AI代码助手

CodeBuddy 805
查看详情 CodeBuddy
Some text <p>Second paragraph

Link
登录后复制
<p>如果当前节点是 "First paragraph" 这个
<p>
登录后复制
标签,那么
following::p
登录后复制
会选择 "Second paragraph" 这个
<p>
登录后复制
标签,而
following-sibling::p
登录后复制
也会选择 "Second paragraph" 这个
<p>
登录后复制
标签。但是,如果使用
following::a
登录后复制
,则会选择 "Link" 这个
<a>
登录后复制
标签,而
following-sibling::a
登录后复制
不会选择任何节点,因为
<a>
登录后复制
标签不是
<p>
登录后复制
标签的兄弟节点。

<p>总结一下:
following
登录后复制
轴的选择范围更广,而
following-sibling
登录后复制
轴的选择范围更窄,仅限于兄弟节点。

如何在实际应用中使用
following
登录后复制
轴?

<p>
following
登录后复制
轴在网页抓取、数据提取和自动化测试等领域非常有用。例如,可以使用
following
登录后复制
轴来定位网页中特定元素之后的动态内容,或者根据某个标志性元素来查找相关的后续元素。

<p>假设一个网页的结构如下:

Article Title

<p>Introduction paragraph.

<p>Main content paragraph 1.

登录后复制
<p>如果想要提取 "Related Articles" 标题之后的所有链接,可以使用 XPath 表达式
//h2[text()='Related Articles']/following::a
登录后复制
。这个表达式首先定位到文本内容为 "Related Articles" 的
<h2>
登录后复制
标签,然后使用
following::a
登录后复制
选择该标题之后的所有
<a>
登录后复制
标签。

<p>另一个例子是在自动化测试中,如果一个表单的错误信息显示在输入框之后,可以使用
following
登录后复制
轴来定位错误信息。例如,如果输入框的 HTML 结构如下:

<input type="text" id="username" name="username">
<span class="error-message">Username is required.</span>
登录后复制
<p>可以使用 XPath 表达式
//input[@id='username']/following::span[@class='error-message']
登录后复制
来定位错误信息。

<p>总而言之,
following
登录后复制
轴是一个非常灵活和强大的 XPath 轴,可以用于选择各种类型的后续节点,从而实现更精确和高效的网页数据提取和自动化测试。

以上就是XPath的following轴怎么选择之后的节点?的详细内容,更多请关注php中文网其它相关文章!

Windows激活工具
Windows激活工具

Windows激活工具是正版认证的激活工具,永久激活,一键解决windows许可证即将过期。可激活win7系统、win8.1系统、win10系统、win11系统。下载后先看完视频激活教程,再进行操作,100%激活成功。

下载
来源:php中文网
收藏 点赞
上一篇:XPath的reverse()函数如何反转序列? 下一篇:XPath的div运算符如何进行浮点除法?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
相关专题
更多>
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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