如何使用XPath后续兄弟节点提取Flavour标签对应的值Fizzy Drink
可行的XPath解决方案
你已经正确定位到了Flavour标签节点,只需要向上找父级td节点,再取该td的后续相邻兄弟节点即可,完整表达式如下:
//span[contains(@class, "a-size-base a-text-bold") and text()="Flavour"]/parent::td/following-sibling::td[1]/span/text()
表达式各部分说明:
- 前半部分是你原有可正常命中Flavour标签的定位逻辑
/parent::td:向上跳转至当前span节点的父级td节点(也就是class为a-span3的td)/following-sibling::td[1]:选中当前td节点之后第一个相邻的td兄弟节点,对应存储口味值的class为a-span9的td/span/text():提取该td下span节点的文本内容,即可得到Fizzy Drink
也可以使用简写写法,用..代替parent::td,效果完全一致:
//span[contains(@class, "a-size-base a-text-bold") and text()="Flavour"]/../following-sibling::td[1]/span/text()
如果需要更高的兼容性,避免后续HTML结构变动导致定位失效,可以给兄弟td增加class过滤:
//span[contains(@class, "a-size-base a-text-bold") and text()="Flavour"]/../following-sibling::td[contains(@class,"a-span9")]/span/text()
内容的提问来源于stack exchange,提问作者Kanchan
相关产品推荐
相关产品推荐

