XPATH如何提取面包屑导航中最后一个带href的a标签内容
错误原因
你编写的XPath //div[@class='breadcrumb-container']/ul/li/a[last()] 的匹配逻辑是每个li节点下的最后一个a标签,而你的面包屑结构里3个带a的li都只有1个a子节点,所以3个a都会被命中,返回全部文本不符合要求。
正确写法
核心逻辑是先把所有符合条件的a标签整合成一个节点集,再取该节点集的最后一个元素,需要用括号把目标节点的匹配规则包裹:
(//div[@class='breadcrumb-container']/ul/li/a[@href])[last()]
如果需要直接提取文本,追加/text()即可:
(//div[@class='breadcrumb-container']/ul/li/a[@href])[last()]/text()
等价写法
也可以先筛选出所有带有href属性a子元素的li,取最后一个li后再提取a的文本:
//div[@class='breadcrumb-container']/ul/li[a/@href][last()]/a/text()
内容的提问来源于stack exchange,提问作者Rich Stevens
相关产品推荐
相关产品推荐

