XPath中查找“某个节点后面的第一个指定节点”应优先使用following-sibling::tagname[1]轴定位同级后续首个元素;若需跨层级则用following::tagname[1],但效率低且范围广。

用 XPath 查找“某个节点后面的第一个指定节点”,核心是使用 following-sibling 轴,配合位置谓词 [1]。
基本写法:following-sibling::tagname[1]
假设你当前定位到一个节点(比如某个 如果要找的是“后面第一个满足某条件的兄弟节点”(比如 class="info" 的 如果目标节点**不在同一级**(比如在下一个 假设有如下 HTML: 第一个 p 第二个 p 那么: 基本上就这些。关键是分清 sibling(同级)和 following(全局后续),再结合 [1] 和谓词位置,就能准确抓到“后面第一个指定节点”。),写法是:
following-sibling::p[1] —— 找当前节点之后、同级中第一个
、)隔开,只要目标 是后续兄弟中第一个出现的,就匹配成功更精确:带条件的首个兄弟节点
following-sibling::div[@class='info'][1][@class='info'][1] 表示“先筛选出所有符合条件的兄弟 following-sibling::div[1][@class='info'] 表示“先取第一个兄弟 跨层级?用 following 轴(慎用)
里),following-sibling 就失效了。此时可用 following 轴:
following::p[1] —— 找文档中当前节点之后、**所有后续节点中第一个 **(不管嵌套多深)following 包含所有后代和后续兄弟的后代,范围大、效率低,且容易受文档结构影响following-sibling;只有确认目标一定是同级或需跨层时,才考虑 following
实际例子(HTML 片段)
无关项
//div[@id='start']/following-sibling::p[1] → 匹配“第一个 p”//div[@id='start']/following-sibling::div[@class='info'][1] → 匹配“提示框”//div[@id='start']/following::p[1] → 同样匹配“第一个 p”(因为它是后续中第一个 )










