如何编写XPATH选取指定h2后至下一个h2/table结束前的td元素
精准定位指定
后的目标元素
你需要的是一个能限制范围的XPath,既要选中目标
之后的,又要在遇到下一个
或者所在结束时停止。以下是通用解决方案:
通用XPath表达式(适配任意目标标题)
把表达式中的TARGET_HEADING替换成你要定位的标题文本即可:
//h2[text()='TARGET_HEADING']/following::td[ not(preceding::h2[text() != 'TARGET_HEADING']) and ancestor::table[1] = //h2[text()='TARGET_HEADING']/ancestor::table[1] ]
表达式拆解
- 定位目标标题:
//h2[text()='TARGET_HEADING']精准找到你指定的标签
- 筛选后续
:/following::td 取出该标题之后所有的 | 元素
后的 | :not(preceding::h2[text() != 'TARGET_HEADING']) 确保选中的 | 不会出现在另一个之后,以此实现"到下一个为止"的边界限制ancestor::table[1] = ...following-sibling
内容的提问来源于stack exchange,提问作者Vasanth Subramanian
|
相关产品推荐
相关产品推荐

