XPATH如何排除指定class的a标签或跳过首个匹配a标签获取内容
错误写法不生效的原因
你之前使用@class!="parent"不生效,是因为目标a标签的class属性是parent xh-highlight多类并存,不等于单一的parent字符串,所以全等判断无法命中筛选条件。
正确写法(两种方案可选)
方案1:直接排除class包含parent的a标签
如果parent类不一定出现在第一个a标签上,优先选这个方案:
- 简单写法(适配当前场景)
//div[@class='hide-for-small']/div/div/div/div[1]/div/div/div/p[@class='region-list']/a[not(contains(@class, 'parent'))]
- 严谨写法(避免类名部分匹配误判,比如类名是
parent-item的情况也不会被误排除)
//div[@class='hide-for-small']/div/div/div/div[1]/div/div/div/p[@class='region-list']/a[not(contains(concat(' ', normalize-space(@class), ' '), ' parent '))]
方案2:跳过第一个a标签,抓取剩余所有a标签
如果结构固定就是第一个a需要跳过,不管它的class属性是什么,选这个方案即可:
//div[@class='hide-for-small']/div/div/div/div[1]/div/div/div/p[@class='region-list']/a[position()>1]
两种方案返回的结果一致:
Croatia Italy Montenegro
内容的提问来源于stack exchange,提问作者Rich Stevens
相关产品推荐
相关产品推荐

