如何编写XPATH获取祖先含指定类子元素的objective类span节点
适配需求的XPath表达式
//span[contains(@class, 'objective') and ancestor::div[.//span[contains(@class, 'objective-is-useful')]]]
- 表达式前半段
//span[contains(@class, 'objective')]会匹配所有class属性包含objective的span节点 - 后半段的过滤条件
ancestor::div[.//span[contains(@class, 'objective-is-useful')]]会筛选出符合要求的节点:当前span存在div祖先,且该div的后代节点中存在class包含objective-is-useful的span,完全匹配你提到的“两类span有共同的div祖先、中间存在多层嵌套”的场景 - 如果你需要直接获取节点文本,在表达式末尾添加
/text()即可,返回结果就是Data 1和Data 3 - 如果可以确认元素的class属性完全等于目标值,不存在多class共存的情况,可以把
contains(@class, 'xxx')替换为@class='xxx',匹配精度更高
内容的提问来源于stack exchange,提问作者Dante
相关产品推荐
相关产品推荐

